1. if 语句
1.1 if 语句的三种形式
1.1.1 if 语句
1.1.1.1 if 语句的语法格式
if (表达式)
语句;
表达式部分必须用()括起来,它可以是一个常量或变量,也可以是关系表达式或逻辑表达式。
如果表达式的值为非0,则执行紧跟其后的语句,然后顺序执行后续语句;如果表达式的值为0,则跳过紧跟的语句,执行后续语句。(C语言中0表示假,非0表示真)
相当于“如果......那么......”。
1.1.1.2 if 语句的流程图
1.1.1.3 if 语句的使用
int main()
{
int age = 0;
scanf("%d", &age);
if (age >= 18)
printf("成年\n");
return 0;
}
1.1.2 if-else 语句
1.1.2.1 if-else 语句的语法格式
if (表达式)
语句1;
else
语句2;
if-else语句中的表达式可以是一个常量或变量,也可以是关系表达式或逻辑表达式。如果表达式的值为非0,则执行语句1;否则,执行语句2。(C语言中0表示假,非0表示真)
相当于“如果......否则......”。
1.1.2.2 if-else 语句的流程图
1.1.2.3 if-else 语句的使用
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("未成年\n");
else
printf("成年\n");
}
if和else后面一般都用{ }将需要执行的语句括起来,执行语句只有一条语句时可以省略{ }。
1.1.3 if-else if 语句
1.1.3.1 if-else if 语句的语法格式
if (表达式1)
语句1;
else if (表达式2)
语句2;
else if (表达式3)
语句3;
...
else if (表达式n)
语句组n;
else
语句组n+1;
if-else if语句中的表达式是一个常量或变量,也可以是关系表达式或逻辑表达式。依次计算各表达式的值,哪个表达式的值为非0,则执行相应的语句组,若所有表达式的值均为0时,则执行else后的语句组。(C语言中0表示假,非0表示真)
相当于“如果满足某种条件,进行某种处理;否则,如果满足另一种条件,则执行另一种处理......”
else总是和离它最近的if匹配。
1.1.3.2 if-else if 语句的流程图
1.1.3.3 if-else if 语句的使用
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age < 18)
printf("少年\n");
else if (age >= 18 && age < 30)
printf("青年\n");
else if (age >= 30 && age < 50)
printf("中年\n");
else if (age >= 50 && age < 80)
printf("老年\n");
else
printf("老寿星\n");
return 0;
}
2. switch 语句
2.1 switch 语句的使用
switch (表达式)
{
case 常量值1:
语句1;
break;
case 常量值2:
语句2;
break;
...
case 常量值n:
语句n;
break;
default:
语句n + 1;
break;
}
switch 语句的说明
(1)在switch 语句中,表达式需为整型或字符型。
(2)每一个case后的常量值必须是整型或字符型,而且值不能相同,因为选择语句只允许一路选择所对应的语句被执行。
(3)在执行switch 语句中,从匹配表达式的相应case处入口,一直执行到break语句或到达switch的末尾为止。(这里的break语句是跳转,也就是跳出当前分支,如果在case对应的语句块中没有break,那么程序会一直向下执行,也就是说break语句的实际效果是把语句列表划分为不同的分支部分)
(4)每个case后的语句可以是单个语句或空语句,也可以是复合语句。
(5) 在switch语句中,default和语句组n+1可以同时省略。
2.2 switch 语句的流程图
2.3 switch语句的使用
#include <stdio.h>
int main()
{
int day = 0;
scanf("%d",&day);
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
default:
break;
}
return 0;
}
3. if 语句与switch 语句的比较
(1)使用if语句可以构成各种各样的选择结构,尤其适合在构成有复杂的逻辑条件判断的选择结构中。
(2)对于选择较多,且判断条件较简单的情况,如判断整型数值或字符值是否相等时,常用switch语句来构成选择结构。
(3)用switch语句构成的选择结构清晰,执行效率比if语句构成的选择结构高。但是switch语句判断的时候只能整型或字符型,不可以是一个区间。