- wardwang 的博客
1.2.3.2 if语句、switch语句、多层条件语句
- @ 2023-11-5 10:40:23
1.2.3.2 if语句、switch语句、多层条件语句
if语句
if 语句分为单分支和双分支两种形式。
(1) 单分支,即如果表达式的值为真,则其后的语句块被执行;否则,其后的语句块略过。
int a, b, max;
scanf("%d %d", &a, &b); // 读入两个数值,分别赋给a和b
max = b; // 假设b最大
if (a > b)
max = a; // 如果a>b,那么更改max的值
printf("%d 和 %d 的较大的值是:%d\n", a, b, max);
(2) 双分支,即如果表达式的值为真,则其后的语句块被执行;否则,执行 else 后的语句块。
int a, b, max;
scanf("%d %d", &a, &b);
if (a > b)
max = a;
else
max = b;
printf("%d 和 %d 的较大的值是:%d\n", a, b, max);
if-else 语句也可以同时使用多个,构成多个分支,语法如下。
if (表达式1)
{
语句块1
}
else if (表达式2)
{
语句块2
}
else if (表达式3)
{
语句块3
}
...
else if (表达式n)
{
语句块n
}
else
{
语句块n + 1
}
switch语句
switch 语句适用于表达数量较多的分支条件,语法如下。
switch (表达式)
{
case 常量表达式1: 语句块1
case 常量表达式2: 语句块2
......
default: 语句块n
}
switch 语句可以包含多个 case 条件,case 后面的常量表达式必须各不相同。进入 switch 语句后,先计算表达式的值,然后逐一匹配每个 case 的常量表达式,当匹配成功时,执行对应的语句块,然后顺序执行之后的所有语句,直到整个 switch 语句结束。如果遇到一个 break 语句,则中止 switch 语句的执行。如果表达式与所有的 case 都不能成功匹配,则执行 default 后面的语句块,直到 switch 语句结束。
break是专门用于跳出类似switch的分支和其他循环结构的语句。“跳出”是指一旦遇到break,就不再执行 switch 中的其他语句,包括当前分支中的语句和其他分支中的语句。
default 负责处理不符合任何 case 的情况,而且 switch 语句中只能有一个 default 分支,它可以出现在开头或者结尾,也可以出现在两个 case 的中间,但 switch 语句中不是必须出现 default 选项的。
- 多层条件语句 条件语句可以层层嵌套,形成多层条件语句。