在if语句中又可包含一个或多个if语句,称为if语句的嵌套。内嵌的if语句既可以嵌套在if子句(语句1)中,也可以嵌套在else子句(语句2)中,因而形成了各种各样的if语句的嵌套形式,其一般形式如下:
if(表达式1)
if(表达式2) 语句1 e
lse 语句}2
内嵌的if
else
if(表达式3) 语句1
else 语句}2
内嵌的if
在if语句的嵌套中,需要注意的是if与else的配对关系,else总是与它上面的最近的未配对的if配对。
例如:
if(表达式1)
if(表达式2) 语句1
else 语句2
编写程序者把else与第1个if写在同一列上,意图使else与第1个if配对,但实际上else是与第2个if配对,可以看出if与else的配对关系与书写格式无关,为了实现编写程序者的意图,避免引起逻辑上的混乱,可以将“if(表达式2)语句1”放在一对花括号内。
例如:
if(表达式1)
{
if(表达式2)语句1
}
else 语句2
【例3.9】某学校对学生的成绩进行了分档,若学生成绩85分以上(含85分)为A,60分以上(含60分)85分以下为B,60分以下为C,请编程实现根据输入的学生成绩判断该学生的成绩所属的档次。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {(www.xing528.com)
4 int score;
5 scanf("%d",&score);
6 if(score<0||score>100)
7 printf("input error!");
8 else
9 {
10 if(score>=60)
11 {
12 if(score>=85)
13 printf("A");
14 else
15 printf("B");
16 }
17 else
18 printf("C");
19 }
20 printf("\n");
21 return 0;
22 }
程序结果如图3.15所示:
图3.15 例3.9程序结果图
【例题中关键问题说明】
(1)if语句的嵌套层数没有限制,但嵌套的层数太多,阅读代码的难度会增大。
(2)在if语句的嵌套结构中,建议书写程序时采用缩进对齐方式以增加程序的可读性。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。