首页 理论教育 C语言程序设计:if语句三种形式详解

C语言程序设计:if语句三种形式详解

时间:2023-10-29 理论教育 版权反馈
【摘要】:=0)7i=-i;8printf;9return 0;10}程序结果如图3.12所示:图3.12例3.6程序结果图第6行if语句中的表达式必须用括号括起来,i的值不等于0时,表达式“i!=0”为真,执行第7行语句。

C语言程序设计:if语句三种形式详解

根据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语句实现,但执行时将逐条判断,效率不如本例。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈