我想知道为什么0或-20没有结束循环。希望你能帮助我,因为我被卡住了:(
#include <stdio.h>
int main()
{
int days;
printf("Please insert number of days: ");
scanf("%d", &days);
while(days != 0 || days != -20)
{
printf("%d days are %d week(s) and %d day(s). (0 or - 20 to quit)",
days, days/7, days%7 );
scanf("%d", &days);
}
return 0;
}
days != 0 || days != -20
将始终为true。因为无论days
的值是多少,它都不会是0 或也不会是-20(或也不是)。
如果要在任一情况下中断,请使用逻辑和运算符。
while(days != 0 && days != -20)
{
}
更改此
while(days != 0 || days != -20)
到
while(days != 0 && days != -20)
要获得您期望的行为。
但是也可以表示为:
while(days <= 0 && days >= -20)
提供允许您停留在循环中的日期范围,以及循环将退出的范围。