c程序控制语言,C语言程序设计(第3章程序控制语句)3

b698fa289b6847d44d16d998e02353e5.png

3.3 条件控制语句

在程序的三种基本结构中,第二种即为选择结构,其基本特点是:程序的流程由多路分支组成,在程序的一次执行过程中,根据不同的情况,只有一条支路被选中执行,而其他分支上的语句被直接跳过。

C语言中,提供if语句和switch语句选择结构, if语句用于两者选一的情况,而switch用于多分支选一的情形。

3.3.1 if语句

1. if语句的两种基本形式

首先,我们看一个例子,由此了解选择结构的意义及设计方法。

[例3-5] 输入三个数,找出并打印其最小数。

分析:设三个数为A、B、C,由键盘读入,我们用一个变量MIN来标识最小数, A、B、C与MIN皆定义为int型变量。

每次比较两个数,首先比较A和B,将小的一个赋给MIN,再把第三个数C与MIN比较,再将小的一个赋给MIN,则最后MIN即为A、B、C中最小数。

算法如下:

1) 输入A、B、C。

2) 将A与B中小的一个赋给MIN。

3 ) 将MIN与C中小的一个赋给MIN。

4) 输出MIN。

将第2)步细化为:若A < B,则MIN <==A,否则:MIN <==B;其流程图见图3- 1。

第3)步细化为:若C < M I N,则MIN <==C;其流程图见图3 - 2。

对应图3 - 1和图3 - 2,正是i f语句的两种基本形式,与图3 - 2对应的i f语句的格式为:

if 语句

当表达式为真时,执行语句,表达式为假时跳过语句。

与图3 - 1对应的i f语句的格式为:

if

语句1

else

语句2

当表达式为真时,执行语句1,表达式为假时执行语句2。无论如何,语句1与语句2每次只能有一个被执行。

要注意的是: if或if . . . else,包括后面要讲到的嵌套if,即if...else if...被看成是一条语句,即使其中的语句是包含多条语句的复合语句,仍然如此。

下面是例3 - 5的源程序:

main( )

{

int a,b,c,min;

printf(" input a,b,c :");

scanf("%d %d %d" , &a , &b , &c);

if(amin = a;

else

min = b;

if (cmin = c;

printf("The result is %d\n",min);

}

执行情况如下:

input a,b,c: 3 5 2

The result is : 2

这里顺便提一下程序书写的缩排问题,所谓缩排,就是下一行与上一行相比,行首向右缩进若字符,如上例的min = a 、min = b等。适当的缩排能使程序的结构、层次清晰、一目了然,增加程序的易读性。应该从一开始就养成一个比较好的书写习惯,包括必要的注释、适当的空行以及缩排。

2. 复合语句

if语句中,有时需要执行的语句不止一条,这就要用到复合语句。

复合语句,就是用一对花括号括起来的一条或多条语句,形式如下:

{

语句1;

语句2;

。。。。

语句n;

}

无论包括多少条语句,复合语句从逻辑上讲,被看成是一条语句。

复合语句在分支结构、循环结构中,使用十分广泛。

[例3-6] 读入两个数x、y,将大数存入x,小数存入y。

分析: x、y从键盘读入,若x > = y,只需顺序打出,否则,应将x,y中的数进行交换,然

后输出。两数交换必须使用一个中间变量t,

定义三个浮点数x、y、t。

算法:

1) 读入x、y;

2 ) 大数存入x,小数存入y;

3 ) 输出x、y。

第2)步求精:

若x < y,则交换x与y;

再求精,x与y交换;

① t <== x

② x <== y

③ y <== t

算法的流程图见图3 - 3,

程序如下:

#includemain( )

{

float x,y,t;

printf("input x,y:");

2829f2ca24f0d0090cbba57f30759f23.png

C语言程序设计(第3章程序控制语句)3.doc

下载Word文档到电脑,方便收藏和打印[全文共1517字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值