C语言菜鸟基础教程之判断
(一)
先动手编写一个程序:
#includeintmain() { if(1) { printf("Theconditionistrue!\n"); } return0; }
运行结果:
Theconditionistrue!
再把1依次改为,2,5,100,-10,发现运行结果完全一样。
再改成if(0),此时发现没有运行结果,说明printf()语句没被执行。
C语言把判断语句中的任何非0或非空的值当作真。所以if(1),if(2),if(5),if(100),if(-10)的效果是一样的。
(二)
再编写一个程序:
#includeintmain() { inta=100; if(a>0) { printf("Theconditionvalueis%d\n",(a>0)); } return0; }
运行结果:
Theconditionvalueis1
分析:
a=100,a>0成立,所以if(a>0)等价于if(1)。
在C语言中,判断语句是有值的,要么为1,要么为0。比如本程序中a>0的值就是1。
(三)
最后编写一个程序:
#includeintmain() { charc1='\0'; if(c1) { printf("Theconditionistrue!\n"); } else { printf("Theconditionisfalse!\n"); } charc2=''; if(c2) { printf("Theconditionistrue!\n"); } else { printf("Theconditionisfalse!\n"); } charc3='A'; if(c3) { printf("Theconditionistrue!\n"); } else { printf("Theconditionisfalse!\n"); } return0; }
运行结果:
Theconditionisfalse! Theconditionistrue! Theconditionistrue!
说明:C语言中用'\0'来表示空字符。空格'‘也是一个字符,这从if(c2)条件为真就可以看出来。