根据if语句的一般形式,if语句可以有多种形式,最常用的有以下3种形式:
1.if(表达式) 语句1
此种if语句的形式没有else子句,可以用于实现单分支选择结构。
【例3.6】输入一个整数,求该数的相反数并将相反数进行输出。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i;
5 scanf("%d",&i);
6 if(i!=0)
7 i=-i;
8 printf("%d\n",i);
9 return 0;
10 }
程序结果如图3.12所示:
图3.12 例3.6程序结果图
【例题中关键问题说明】
(1)第6行if语句中的表达式必须用括号括起来,i的值不等于0时,表达式“i!=0”为真,执行第7行语句。
(2)第7行的“i=-i;”是if语句中的语句1,是一个简单语句。
(3)此程序中if语句没有else子句。
2.if(表达式) 语句1
else 语句2
此种if语句的形式有else子句,可以用于实现双分支选择结构。
【例3.7】输入一个整数,判断该数是奇数还是偶数。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int i;
5 scanf("%d",&i);
6 if(i%2==0)
7 printf("%d is even.\n",i);
8 else
9 printf("%d is odd.\n",i);
10 return 0;
11 }
程序结果如图3.13所示:
图3.13 例3.7程序结果图
【例题中关键问题说明】(www.xing528.com)
(1)比较两个数值是否相等,需要用到关系运算符“==”,而不是使用的赋值运算符“=”。在关系表达式“i%2==0”中,如果误将“==”写成了“=”,程序编译时会出错,因为赋值表达式的左侧只能是变量名。
(2)此程序中if语句有else子句,else子句是if语句的一部分,必须与if配对使用,不能单独使用。
3.if(表达式1) 语句1
else if(表达式2) 语句2
else if(表达式3) 语句3
·
·
·
else if(表达式n) 语句n
else 语句n+1
此种if语句的形式在else子句又嵌套了多层的if语句。
【例3.8】某学校对学生的成绩进行了分档,若学生成绩85分以上(含85分)为A,60分以上(含60分)85分以下为B,60分以下为C,请编程实现根据输入的学生成绩判断该学生的成绩所属的档次。
程序内容如下:
1 #include<stdio.h>
2 int main()
3 {
4 int score;
5 scanf("%d",&score);
6 if(score<0||score>100)
7 printf("input error!");
8 else if(score>=85)
9 printf("A");
10 else if(score>=60)
11 printf("B");
12 else
13 printf("C");
14 printf("\n");
15 return 0;
16 }
程序结果如图3.14所示:
图3.14 例3.8程序结果图
【例题中关键问题说明】
(1)由于前一次判断已经排除了score>=85的情形,所以判断学生成绩是否属于B档的表达式“score<85&&score>=60”可以简化为“score>=60”。
(2)“printf("input error!");”、“printf("A");”、“printf("B");”是if语句中的内嵌语句,它们是if语句中的一部分,每个内嵌语句的末尾都应当有分号,因为分号是C语句的必要成分。
(3)此程序也可以使用多个并列的无else子句的if语句实现,但执行时将逐条判断,效率不如本例。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。