选择结构
选择结构是根据条件的真假来决定是否要执行代码块。

选择结构主要有两种语句,即if语句和switch语句
if语句
代码结构
- 单分支结构
if (表达式)
语句1;
else
语句2;
- 多分支结构
if (表达式1)
语句1;
else if (表达式2)
语句2;
else
语句3;
示例代码
#include <stdio.h>
int main()
{
int age = 0;
scanf("%d", &age);
if (age<18)
{
printf("未成年\n");
}
else
{
printf("成年\n");
}
}
运行结果:
输入的数字小于18,则输入未成年;输入的数字大于18,则输出成年
注意事项
- 表达式结果为真,则执行语句。C语言里0表示假,非0表示真;
- 一个if只能对应一个else,而且对应的是离这个if最近的且未匹配的else;
- 可以将语句用{}括起来,使得逻辑清晰,不易出错;
if (表达式)
{
语句1;
}
else
{
语句2;
}
典型例题
输入三个整数,并按顺序排列
#include <stdio.h>
int main()//三个整数排序
{
int a, b, c, t;
printf("请输入三个整数\n");
scanf("%d%d%d", &a, &b, &c);
if (a < b)
{
t = a;
a = b;
b = t;
}
if (a < c)
{
t = a;
a = c;
c = t;
}
if (b < c)
{
t = b;
b = c;
c = t;
}
printf("从大到小排列是:%d%d%d\n", a, b, c);
printf("从小到大排列是:%d%d%d\n", c, b, a);
return 0;
}
输出结果:

switch语句
switch语句也是一种分支语句。 常常用于多分支的情况。
比如:
输入1,输出星期一
输入2,输出星期二
输入3,输出星期三
输入4,输出星期四
输入5,输出星期五
输入6,输出星期六
输入7,输出星期七
如果写成if…else if …else if 的形式未免也太复杂了,这时候就可以用到switch语句了
代码结构
switch(整型表达式)
{
case 整型常量表达式;
语句;
}
示例代码
#include <stdio.h>
int 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;
default:printf("请重新输入");
break;
}
return 0;
}
输出结果:输入数字1-7,对应输出星期几,输入别的数字,会提示“请重新输入”
注意事项
- case后面必须要跟整型常量,因此switch后面的括号里也要跟整型常量
- break可以使程序跳出switch循环,执行switch之后的语句,如果没有break语句,则会从满足条件的地方开始执行,直到switch结构结束。
- 如果所有的case标签都不能满足switch()里面的值,这时switch结构体里的所有语句就会被跳过,如果你并不想忽略不匹配所有标签的表达式的值时,你就可以在语句列表中增加一条default子句。default字句可以写在任何一个case标签可以出现的位置,当 switch表达式的值并不匹配所有case标签的值时,这个default子句后面的语句就会执行。值得注意的时,每个switch语句中只能出现一条default子句。最后,别忘了在default子句后面加上break。
本文详细介绍了C语言中的选择结构,包括if语句和switch语句的代码结构、示例及注意事项。if语句分为单分支和多分支结构,适用于条件判断。switch语句则在多分支情况下更为便捷,可以避免复杂的if...else if...结构。每个case后面需跟整型常量,default子句用于处理未匹配所有case的情况。
1383

被折叠的 条评论
为什么被折叠?



