//判断
if(表达式)
语句;
演示代码:
int main()
{
int age = 0;
scanf("%d", &age);
if(age<18)
{
printf("未成年n");
}
}
//双分支
if(表达式)
语句1;
else
语句2;
//代码2:双分支
#includeint main() { int age = 0; scanf("%d", &age); if(age<18) { printf("未成年n"); } else { printf("成年n"); } }
//多分支
if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;
//代码3:多分支
#includeint 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"); } }
解释一下:
如果表达式的结果为真,则语句执行。
在C语言中如何表示真假?
0表示假,非0表示真
该代码结果是什么 也没有打印,因为else的匹配是和它离的最近的if匹配的。
#includeint main() { int a = 0; int b = 2; if(a == 1) if(b == 2) printf("hehen"); else printf("hahan"); return 0; }
改正:
适当的使用 { } 可以使代码的逻辑更加清楚。
代码风格很重要
#include1.3 练习:输出1-100之间的奇数 2.switchint main() { int a = 0; int b = 2; if(a == 1) { if(b == 2) { printf("hehen"); } } else { printf("hahan"); } return 0; }
switch语句也是一种分支语句。 常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期日
用 if…else if …else if 的形式太复杂,switch 语句能清晰明了的写出
switch(整型表达式) {
语句项;
}
语句项:是一些case语句:
//如下:
case 整形常量表达式:
语句;
break;
2.2 在switch语句中的 break
在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
break语句 的实际效果是把语句列表划分为不同的分支部分。
比如:
#includeint main() { int day = 0; 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; } return 0; }
有时候改变需求:
输入1-5,输出的是“工作日”;
输入6-7,输出“休息日”;
代码就应该这样实现了:
#include2.3 default子句int main() { int day = 0; switch(day) { case 1: case 2: case 3: case 4: case 5: printf("工作日n"); break; case 6: case 7: printf("休息日n"); break; } return 0; }
如果表达的值与所有的case标签的值都不匹配怎么办?
程序并不会终止,也不会报错,但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
可以在语句列表中增加一条default子句
default:
语句;
break;
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。
每个switch语句中只能出现一条default子句。
但是它可以出现在语句列表的任何位置
比如:



