C/C++条件语句
C/C++的条件语句有几种,以下将介绍它们:
第一种是if语句,格式为:
if(/判断条件/){
//执行代码 1
}
if语句的结构很简单,但是只能根据单一的条件进行判断,我们可以在if语句进行扩充。代码如下:
if(/判断条件1/){
//执行代码 1
}
else if(/判断条件2/){
//执行代码 2
}
其中代码运行时,会先判断条件1,决定是否执行代码1,如果判断条件1为假,则判断条件2是否为真,如果为真,则执行代码2。值得注意的是,这里如果在条件1判断为真,那么不论条件2成不成立,都不会执行代码2。代码如下:
int i=5,j=4;
if(i==5)
{
printf(“Yes.\n”);
}
else if(j==4){
printf(“No.\n”);
}
上述代码的输出结果为Yes.
然而这样的代码一旦分支过多,就会显得十分冗余。比如,我们想通过Day变量来打印今天是星期几:
int Day;
if(Day==1) printf("Monday.\n");
else if(Day==2) printf("Tuesday.\n");
else if(Day==3) printf("Wensday.\n");
else if(Day==4) printf("Thursday.\n");
else if(Day==5) printf("Friday.\n");
else if(Day==6) printf("Saturday.\n");
else printf("Sunday.\n");
上面的代码因为有七个分支,就要写5个else if,十分麻烦。
根据if-else if的格式,我们可以用switch语句来简洁的写出如下等价代码:
int Day;
switch(Day){
case 1:printf("Monday.\n");break;
case 2:printf("Tuesday.\n");break;
case 3:printf("Wensday.\n");break;
case 4:printf("Thursday.\n");break;
case 5:printf("Friday.\n");break;
case 6:printf("Saturday.\n");break;
default:printf("Sunday.\n");
}
在switch语句中,括号中表达式,计算表达式并与之后的case进行比较,如果相等则从该选项开始执行语句。如果都没有,则从default这个语句开始执行。因为一旦执行,就会顺序执行代码,所以要记得加上break;除非你想这样做。
比如:
int Day=1;
switch(Day){
case 1:printf("Monday.\n");
case 2:printf("Tuesday.\n");
case 3:printf("Wensday.\n");
case 4:printf("Thursday.\n");
case 5:printf("Friday.\n");
case 6:printf("Saturday.\n");
default:printf("Sunday.\n");
}
输出结果为:
Monday.
Tuesday.
Wensday.
Thursday.
Friday.
Saturday.
Sunday.