C语言菜鸟基础教程之条件判断
(一)if...else
先动手编写一个程序
#includeintmain() { intx=-1; if(x>0) { printf("xisapositivenumber!\n"); } else { printf("xisnotapositivenumber!\n"); } return0; }
运行结果:
xisnotapositivenumber!
程序分析:
定义一个整数x,并给他赋值。这个值要么大于0,要么不大于0(等于或小于0)。
若是大于0,则打印xisapositivenumber!
若不大于0,则打印xisnotapositivenumber!
这里建议不要再使用在线编译器,而是使用本机编译器(苹果电脑推荐Xcode,PC推荐devC++)。在本机编译器上设置断点逐步执行,会发现if中的printf语句和else中的printf语句只会执行一个。这是因为if和else是互斥的关系,不可能都执行。
(二)if...elseif...else
稍微改动程序
#includeintmain() { intx=0; if(x>0) { printf("xisapositivenumber!\n"); } elseif(x==0) { printf("xiszero!\n"); } else { printf("xisanegativenumber!\n"); } return0; }
运行结果:
xiszero!
程序分析:
假如条件不止两种情况,则可用if...elseif...else...的句式。
这个程序里的条件分成三种:大于0、等于0或小于0。
大于0则打印xisapositivenumber!
等于0则打印xiszero!
小于0则打印xisanegativenumber!
注意,x==0,这里的等号是两个,而不是一个。
C语言中,一个等号表示赋值,比如b=100;
两个等号表示判断等号的左右侧是否相等。
(三)多个elseif的使用
#includeintmain() { intx=25; if(x<0) { printf("xislessthan0\n"); } if(x>=0&&x<=10) { printf("xbelongsto0~10\n"); } elseif(x>=11&&x<=20) { printf("xbelongsto11~20\n"); } elseif(x>=21&&x<=30) { printf("xbelongsto21~30\n"); } elseif(x>=31&&x<=40) { printf("xbelongsto31~40\n"); } else { printf("xisgreaterthan40\n"); } return0; }
运行结果:
xbelongsto21~30
程序分析:
(1)
这里把x的值分为好几个区间:(负无穷大,0),[0,10],[11,20],[21,30],[31,40],(40,正无穷大)
(负无穷大,0)用if来判断
[0,10],[11,20],[21,30],[31,40]用elseif来判断
(40,正无穷大)用else来判断
(2)
符号“&&”代表“并且”,表示“&&”左右两侧的条件都成立时,判断条件才成立。