main()
{
int x, y, userInput;
do {
{ printf("Input a number: \n");
scanf("%i", &userInput);
}
} while (userInput < 1 || userInput > 50);
虽然while结束条件适用于||
,但我想了解为什么它不适用于&&
。 ||
允许我在0到50之间设置范围。如果我使用&&
,则允许所有输入不受限制。对于大多数人来说,这非常容易,但是我是新手,正在尝试学习基础知识。感谢任何帮助!
for (x = 1; x <= userInput; x++) {
for (y = 1; y <= x; y++) {
printf("*");
}
printf("\n");
}
PAUSE;
}
答案 0 :(得分:2)
您要在输入小于1或输入大于50时循环播放。
如果使用and,则条件永远不会为真,因为输入不能小于1且大于50。
答案 1 :(得分:1)
因为||
和&&
的含义不同。
||
是逻辑“或”运算符,因此在这里非常有意义,因为只有在您输入的输入不符合规范时,才再次运行循环。错误的输入是userInput <1或userInput> 50。在两种情况下都是错误的,但是仅一种情况就足以使它出错,因此您使用OR。值不可能同时是<1和> 50,所以那里的AND运算符(&&
)总是返回false。
如果您想使用&&
说“仅当数字不是在1到50之间时才再次运行循环”,必须将比较更改为:
while (!(userInput >= 1 && userInput <= 50));
。请注意,!
是NOT运算符。