-
1 文字讲解
-
2 视频讲解
-
3 过关测试
-
4 拓展资料
if语句通常被称为选择语句或分支语句。它不再局限于顺序结构的单一流程,而是用来对给定条件进行判定,根据其判定结果,从两种操作中选择其一。if 语句用于实现分支结构,C 语言提供了两种形式的 if语句。
3.2.1 if语句(单入口单出口)
一般形式∶
if(表达式)
语句;
执行过程:

图3-1 单入口单出口if语句的一般执行过程。
说明:① 表达式可以为逻辑表达式、关系表达式或数值表达式。
② 执行if语句时,先对"表达式"进行求值,如果计算结果为非0(为真),则执行其后的"语句",否则跳过其后的"语句"。
③ "语句"可以是一条简单语句,也可以是用花括号将几条语句括起来的一个复合语句。看下面的例子。
if(x<y)
x = x+1; // 简单语句
if(x<y)
{
x = x+1;
y = y+1;
} //复合语句
注意∶
① 用“{ }”括起来的复合语句被看成是一条语句。
② 在编写程序时,经常会出现这样的错误,将“if(a == b)”写成"if( a = b )",由于表达式"a == b"与"a = b"均是正确的表达式,因此程序编译时不会指出错误。这样的错误在程序调试中很难被发现,所以应该特别注意。
例3-1 输入一个成绩score,如果成绩大于等手60,则显示"通过!",否则不显示。
1、程序编写思路分析:①理解程序所需完成的功能,②算法分析,③画出程序流程流,④书写源程序,⑤测试源程序。
2、程序功能分析:输入一个成绩后,对表达式”score>=60“进行计算,如果结果值为真(非0),就执行printf( )语句;否则,就跳过printf( )语句,转而执行后续语句。这种过程属于单入口单出口if语句。
对于一种数据,分为两种情况,一种情况,需要程序做出相应的处理,另一种情况,则不处理。这类型问题可选用单入口单出口if语句。
3、程序流程图如下图所示:

4、源程序如下∶
#include <stdio.h>
main( )
{
int score;
printf("输入一个成绩∶");
scanf("%d", &score );
if(score >=60) printf("通过! \n");
}
5、程序测试:
对于成绩score数据分为两类:① 若score>=60,则显示“通过”; ② 若score<60,则不显示。
测试程序运行是否正确,采用两组数据进行测试。
第一组数据:代表通过类数据,选用数据样例为65。
第一组数据:代表未通过类数据,选用数据样例为56。
第一次程序运行时,输入 65,则输出"通过!";如下图所示。

第二次程序运行时,输入 57,则不输出,如下图所示。

通过两组数据的测试,若如上图所示,则可验证程序正确。


