就是当输入一个整型,且这个整型的数不是0时,条件成立,否则,若输入0,则跳过while里面的内容。
其实scanf("%d",&n),n这是一个逗号表达式,所谓逗号表达式,它的值是逗号后面的那个数,举例如下:
y=(5,6);//那么y=6,注意的是因为逗号表达式的优先级比赋值运算还低,所以如果你写成y=5,6的话y还是等于5的
也就是说while(scanf("%d",&n),n)其实相当于while(n),只是因为要输入所以写成了while(scanf("%d",&n),n)这样而已
scanf函数的返回值是正确获得输入变量的个数。
~scanf(),就是没有得到正确输入
总体上就是,如果有正确输入,就退出循环,如果没有正确输入,就执行循环
~就是把-1变成0