首页 理论教育 C语言程序设计教程:选择结构及示例

C语言程序设计教程:选择结构及示例

时间:2023-10-27 理论教育 版权反馈
【摘要】:选择结构可以根据判断给定的条件是否成立,来选择执行不同的程序段落。在C语言中,实现选择结构的语句主要有if条件语句和switch语句。图3-2单分支结构流程图例3-2输入两个整数,输出其中的大数。例3-4要求判别键盘输入字符的类别。图3-9程序运行结果

C语言程序设计教程:选择结构及示例

选择结构可以根据判断给定的条件是否成立,来选择执行不同的程序段落。通过选择结构可以控制程序的走向。在C语言中,实现选择结构的语句主要有if条件语句和switch语句。

1.if条件语句

if条件语句分为单分支、双分支、多分支三种形式。

(1)单分支语句。

if单分支语句的语法格式如下:

单分支语句的执行过程是:先计算表达式的值,若值为“真”(即表达式具有非0值),则执行语句段,然后执行单分支语句后面的语句。若表达式的值为“假”(即表达式的值为0),就跳过该语句段,直接执行单分支语句后面的语句。如图3-2所示。

图3-2 单分支结构流程图

例3-2 输入两个整数,输出其中的大数。

本程序中,输入两个数a、b。把a先赋给变量max,再用if语句判别max和b的大小,如果max小于b,则把b赋给max。因此max中总是大数,最后输出max的值。

(2)双分支语句。

if双分支语句的语法格式如下。

双分支语句的执行过程是:先计算表达式的值,若值为“真”,则执行语句段1,然后执行双分支语句后面的语句。若值为“假”,则执行语句段2,然后执行双分支语句后面的语句。如图3-3所示。

图3-3 双分支结构流程图

例3-3 输入两个数,输出两个数的最大值、最小值。

本程序运行时,先输入两个数x、y。如果x大于y,则将x赋给变量max,将y赋给变量min,否则将y赋给max,将x赋给min,最后输出max和min的值。

程序运行结果如图3-4所示。

图3-4 程序运行结果

(3)多分支语句。

当判断条件有多种情况(多于两种)时,可以使用if多分支语句。该结构的流程图如图3-5所示。

图3-5 多分支结构流程图

if多分支语句的语法格式如下:

if多分支语句的执行过程是:首先计算表达式1的值,如果值为“真”(即表达式1具有非0值),则执行语句段1,然后跳过其他语句段,直接执行后续语句;否则跳过语句段1,接着依次判断其他表达式,如果某个表达式的值为“真”(即该表达式具有非0值),就执行其分支的语句段,之后转到后续语句执行;如果所有表达式的值都是“假”(即值都是0),则执行最后一个分支else中的语句段n+1。

例3-4 要求判别键盘输入字符的类别。

运行程序时,从键盘输入a,则屏幕显示结果如图3-6所示。(www.xing528.com)

图3-6 程序运行结果

多分支语句也可以没有最后一段else部分。此时,如果没有任何一个分支的表达式结果为真,则不执行任何一个语句段,直接跳过去执行后续语句。

对if条件语句,需要注意下面三点。

①if后面的表达式一般为关系表达式或逻辑表达式,也可以使C语言中的任何一种其他表达式。例如,以下的几种形式都是合法的。

②在if和else后面可以只有一条语句,也可以有多条语句。若有多条语句时,就要用花括号将多条语句括起来构成一个复合语句。例如:

③当if语句嵌套使用时,要注意if与else的配对关系。else总是与它上面最近的未配对的if配对。如果if与else的数目不一样,可以加花括号来确定配对关系。

2.switch语句

当判断条件有多种情况(多于两种)时,也可以使用多分支专用的switch语句。

switch语句的语法格式如下:

switch语句的功能是:首先计算圆括号中表达式的值,然后从上至下依次判断该值是否与case后面的常量表达式值相匹配,找到第一个与表达式值相等的常量表达式,就执行相应的语句段及“break;”语句,然后跳出switch语句。当表达式的值不与所有常量表达式值相等时,若存在default,就执行default后面的语句段n+1;若不存在default,则退出switch语句。switch语句的流程,如图3-7所示。

注意:

①switch后面的表达式在ANSI标准中允许为任何类型,但通常为整型或字符型,如果是实型数据,系统会自动将其转换成整型或字符型。case后面的常量表达式,则为整数或字符常量。

图 3-7 switch语句的流程图

②语句段后的break语句可以不要。此时,执行完一个case后面的语句段后,流程控制转移到下一个case继续执行(如例3-6)。

③多个case可以共用一个语句段。例如:

在此程序段中,三个case共用“printf(">64\n");break;”语句段。

④可以没有default子句,此时,语句段n后的break语句可以不要。

例3-5 编写两个数的+、-、*、/简易计算器程序。

程序运行时,若输入“18/4”并按回车键,则运行结果如图3-8所示。

图3-8 程序运行结果

例3-6 输入年号,判断是否为闰年。输入月号,输出每月的天数。

若年份能被400整除或者能被4整除但不能被100整除,则为闰年。

程序运行时,如输入年份为2018,输入月号为3,则运行结果如图3-9所示。

图3-9 程序运行结果

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

我要反馈