if(!a)

f() ……; 是逻辑判断语句,如果括号内逻辑值为真,则继续执行下一条语句,否则不执行

 计算机默认以“0”代表逻辑假,以“非0值”代表逻辑真

上述程序的意思就是不断从键盘向a赋值,直到赋给a的值为一个非0数 若a非0,则逻辑值为真,“!”表示取反,!a的逻辑值就为假,不执行下一条语句;

从逻辑值的角度考虑: if(a)等价于if(a!=0)           
                  if(!a)等价于if(a==0)       if(!a) 等价于 if(a == FALSE)
C语言中的非零即真,也就是a除非等于0 即a==0时为假以外,无论a等于什么都等价于  a==1。

那么!a真好相反,只有当a==0时为真,其他的无论a等于什么都是假

if(a)  {

                    }            //a==0时  , 跳过语句

//每次从键盘 输入的值a!=0,无论a等于什么,都执行

if(!a) {  

                         }  //!a  !=0    a=true   跳过语句

                              // a==0                  执行

if(!a)

时间: 2024-08-26 23:40:28