gpt4 book ai didi

c - 在 do while 循环中 && 运算符的正确用法是什么?

转载 作者:行者123 更新时间:2023-11-30 18:43:46 26 4
gpt4 key购买 nike

我不明白为什么程序只将高度定义为大于 9 的值,如果有人能告诉我我的错误,我将非常高兴,谢谢您的时间。

#include <cs50.h>
include <stdio.h>

int Heigth;

int main(void) {
do {
Heigth = get_int("A level value please ? ");
} while (9 > Heigth && Heigth > 0);

printf("Heigth is %d", Heigth);
}

输出:

$ ./mario
A level value please ? 5
A level value please ? 7
A level value please ? 98
Heigth is 98$ ^C

最佳答案

代码片段:

do {
something();
} while (condition1 && condition2);

表示重复something()如果两者condition1condition2是真的。在你的情况下,get_int()如果 Height 将被重复调用介于 9 和 0 之间。即 9 > HeightHeight > 0是真的。

如果您确实想重复调用 get_int如果Height大于 8 或小于 1,那么你必须写出条件来表达这一点。但是,那么你就不会使用 && 。你会写8 < Height || Height < 1相反。

在 bool 逻辑中, Ø(A ∧ B) ≡ (ØA ∨ ØB) 是正确的,因此您可以通过否定原始表达式来获得等效的行为。

do {
something();
} while (!(condition1 && condition2));

关于c - 在 do while 循环中 && 运算符的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60195217/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com