在c语言中可以使⽤ if , switch 实现分⽀结构。对于要先做判断再选择的问题就要使用分支结构。分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。比如在日常生活中周一到周五要上课,周六周日要放假。我们就可以用分支语句判断一下,今天是周几,然后选择是上班还是放假。
if语句:
在c语言中if语句的语法形式如下:
if(表达式)
{
语句;
}
if语句中若表达式成立(为真),则语句执行,表达式不成立(为假),则语句不执行。在c语言中0为假,非0为真。
eg:输⼊⼀个整数,判断是否为偶数
#
include
<stdio.h>
int
main
()
{
int
num =
0
;
scanf
(
"%d"
, &num);
if
(num %
2
==
0
)
//若表达式成立(为真),就执行下一条语句,把偶数打印出来
printf
(
"%d
是偶数
\n"
, num);
return
0
;
}
if就是如果的意思,if(表达式)就是如果表达式为真执行下一条语句,表达式为假就不执行。
else语句:
在c语言中else语句是与if语句搭配使用的,语法形式如下:
if(表达式)
{
语句;
}
else
{
语句;
}
一个数不是偶数就是奇数,如果我们在上面代码中也想打印出奇数,可以使用
else语句。
eg:
#
include
<stdio.h>
int
main
()
{
int
num =
0
;
scanf
(
"%d"
, &num);
if
(num %
2
==
0
)
printf
(
"%d
是偶数
\n"
, num);
else
//如果if语句中的表达式为假,就会执行else语句的下一条代码
printf
(
"%d
是奇数
\n"
, num);
return
0
;
}
当if语句中的表达式为假时,就不会执行if语句的下一条语句,而是会执行else语句的下一条语句。在上述代码中,当num%2==0时,if语句的表达式就为真,就会执行printf("%d 是偶数\n", num);语句,打印出偶数,当num%2!=0时,if语句的表示是就为假,就会执行else语句的下一条语句,printf("%d 是奇数\n", num);从而打印出奇数。
switch语句:
除了 if
语句外,C语⾔还提供了
switch
语句来实现分⽀结构。 switch 语句是⼀种特殊形式的
if...else
结构,⽤于判断条件有多个结果的情况。它把多重的 else if
改成更易⽤、可读性更好的形式。
在c语言中switch语句的语法形式如下:
switch (表达式)
{
case value1: 语句
case value2: 语句
default: 语句
}
现在用一个例子来解释switch语句
eg:输入考试成绩,如果成绩在90-100之间为"A",在80-90之间为"B",
在70-80之间为"C",在60-70之间为"D",60以下为"E"。
代码如下:
#include<stdio.h>
int main()
{
int a;
printf("请输入你的成绩:");
scanf("%d",&a);
a=a/10;
switch(a)
{
case 10:
case 9:printf("你的成绩为A\n");break;
case 8:printf("你的成绩为B\n");break;
case 7:printf("你的成绩为C\n");break;
case 6:printf("你的成绩为D\n");break;
default:printf("你的成绩为E\n");
}
return 0;
}
int main()
{
int a;
printf("请输入你的成绩:");
scanf("%d",&a);
a=a/10;
switch(a)
{
case 10:
case 9:printf("你的成绩为A\n");break;
case 8:printf("你的成绩为B\n");break;
case 7:printf("你的成绩为C\n");break;
case 6:printf("你的成绩为D\n");break;
default:printf("你的成绩为E\n");
}
return 0;
}
在switch语句
根据表达式不同的值,执⾏相应的
case
分⽀。简单来说,
在上述代码中,当a为8时执行case 8后面的语句,a为7时执行case 7后面的语句,当a为10时由于case 10后面没有语句,就会执行case 9后面的语句,(因为只有当代码遇到break时才会跳出switch语句,没有遇到break时就会一直执行case后面的语句)。
在上述代码中,首先定义存储成绩变量的a,假设a为95,接着就将95/10(等于9),再将9赋值给a,接着swtich(9)就会找到case 9,并执行case 9后面的语句,打印出"
你的成绩为A",然后遇到break,跳出switch,结束代码。
如果找不到对应的值,就执⾏ default 分⽀。比如a为4,由于没有找到case 4,就会执行
default后面的语句,打印出"你的成绩为E"。