首页 理论教育if语句及双分支、嵌套if语句运行结果说明

if语句及双分支、嵌套if语句运行结果说明

【摘要】:图3.4双分支结构说明:在双分支语句中,else 必须与if 配对使用,构成if-else 语句,实现双分支选择。程序运行结果:4.嵌套if 语句当if 语句的操作语句中包含其他if 语句时,称为嵌套if 语句。内嵌if 语句就是if 子句和else 子句的操作语句,可以是上述if 语句3 种形式中的任意一种。在嵌套if 语句结构中,一定要注意else 与if 之间的对应关系。

if 语句是实现选择结构最常用的语句,其作用是根据给定的条件,判断执行哪些语句,要执行的语句可能有一条或多条。语句包括单分支if 语句、双分支if 语句、多分支if 语句和嵌套if 语句4 种形式。

1.单分支if 语句

该语句的一般形式如下:

功能:如果表达式的值为真,那么执行其后的语句,否则不执行该语句。

执行过程如图3.3 所示。

图3.3 单分支结构

【例3.7】输入两个数,输出其中较大的那个数。

分析:定义两个变量a、b,用于接收用户输入的两个数。首先假设a 的值较大,将其赋给最大值变量max,然后将b 与max 比较,如果b 大于max,那么将b 的值赋给max,最后输出max 的值即为最大值。

程序运行结果:

需要强调的是,if 语句中的表达式可以是任何合法的C 表达式,语句可以是任何C 语句。例如,可以是表达式语句、函数调用语句、空语句、复合语句等。

2.双分支if 语句

根据给定的条件,从两组操作中选择一组,即双分支结构。一般格式:

功能:如果表达式的值为真,则执行语句组1,否则执行语句组2。

流程图如图3.4 所示。

图3.4 双分支结构

说明:在双分支语句中,else 必须与if 配对使用,构成if-else 语句,实现双分支选择。如果else 缺省,即构成单分支结构。

【例3.8】输入学生成绩,若大于或等于60分,则打印passed,否则打印 not passed。

分析:定义一个变量score,用于接收用户输入的学生成绩,比较score 和60 的关系,如果存在大于等于关系,则输出passed,否则输出not passed。

程序运行结果:

【例3.9】输入3 个整型数据,求出最大数和最小数。程序如下:

程序运行结果:

3.多分支if 语句(www.chuimin.cn)

前两种形式的语句一般用于两个分支的情况,当有多个分支可供选择时,可采用多分支if 语句。该语句的一般形式如下:

功能:依次判断表达式的值,当出现某个表达式的值为真时,则执行其对应的语句,然后跳转到整个语句之后继续执行程序。如果所有的表达式的值均为假,那么执行else 后的语句,即语句n+1。执行过程如图3.5 所示。

图3.5 多分支选择结构

【例3.10】输入一个百分制成绩,要求输出对应的成绩等级。百分制成绩与成绩等级的对照关系如下:

90分~100分为等级A,80分~89分为等级B,70分~79分为等级C,60分~69分等级D,0分~59分为等级E。

分析:定义一个变量 score,用于接收用户输入的百分制成绩,然后判断该成绩满足哪个条件,从而输出对应的成绩等级。

程序运行结果:

4.嵌套if 语句

当if 语句的操作语句中包含其他if 语句时,称为嵌套if 语句。该语句的基本形式如下:

功能:如果表达式1 的值为真(非0),那么执行if 子句的内嵌if 语句,否则执行else 子句的内嵌if 语句。内嵌if 语句就是if 子句和else 子句的操作语句,可以是上述if 语句3 种形式中的任意一种。

在嵌套if 语句结构中,一定要注意else 与if 之间的对应关系。在C 语言中规定的对应原则是:else 总是与它前面最近的一个尚未匹配的if 相匹配。

一般在书写程序时应注意对应的if 和else 对齐,将内嵌的语句缩进,这样可增加程序的可读性和可维护性,但要特别注意的是,C 语言编译系统并不是按缩进的格式来查找else 与if 之间的对应关系,它只是按“else 总是与它前面最近的一个尚未匹配的if 相匹配”这一基本原则来查找else 与if 之间的对应关系。如果使用了错误的对齐格式,只会起到误导读者的作用,并不会影响程序的执行结果。

以下面的语句段为例:

【例3.11】输入实数x,按照下列公式计算,并输出y 值。

算法分析:y 根据自变量x 的值,可取1、2 或者3,其程序流程如图3.6 所示。程序如下:

图3.6 例3.11 程序流程图

程序运行结果:

再运行一次:

再运行一次: