while的循环条件问题
#include <stdio.h>int main()
{
int ch;
while (scanf("%d", &ch) == 1 && ch >= 0)
;
return 0;
}
在这行代码里的while循环条件是什么意思啊
还有原因也给解释一下吧
谢谢各位大神了 只要用户输入数据就继续
scanf的返回值是1和0,如果用户输入就是1,不输入就是0
ch >= 0就是输入的字符串的长度大于0
第二个条件其实就是用来保险的 循环条件是输入一个整数且这个整数大于等于0,上面那个朋友的说法不对哦,我亲自试过,scanf可以赋值给变量,其值是所输入参数的个数值。 当用户成功输入一个整数并且这个整数大于 0,则退出循环。 wccd 发表于 2020-3-2 15:24
循环条件是输入一个整数且这个整数大于等于0,上面那个朋友的说法不对哦,我亲自试过,scanf可以赋值给变量 ...
我给您说一下我的想法吧
我认为逻辑与前面的scanf...的意思是输入的这个整型数是1
逻辑与后面的意思是ch的值大于等于0
所以while循环,在输入的这个数大于等于0且等于1时,也就是等于1,循环条件为真,进入循环
所以我并不明白您说的“循环条件是输入一个整数且这个整数大于0”
您能给再详细解释一下吗,能把您的思考过程写出来吗{:5_109:}
先看while while循环条件为真继续循环 为假退出循环 (scanf("%d", &ch) == 1 && ch >= 0)也就是说这括号里面的表达式为真继续循环 为假退出循环 再看 && &&两边的的表达式都为真时为真有一边假则返回假 scanf("%d", &ch) == 1 这个表达式是根据scanf函数获取输入字符成功就会返回一个数值 为什么会返回1 你可以去百度scanf函数返回值 所以只要输入正确数据ch成功接收 scanf("%d", &ch) == 1这个表达式就为真 再看 ch >= 0 只要输入非负数就会返回真 te___amo 发表于 2020-3-2 18:22
先看while while循环条件为真继续循环 为假退出循环 (scanf("%d", &ch) == 1 && ch >= 0)也就是说这括 ...
谢谢啦!讲的很明白!
页:
[1]