C语言程序设计(第3章程序控制语句)3
3.3条件控制语句
在程序的三个基本结构中,第二个是选择结构。它的基本特征是:一个程序的进程由多个分支组成。在程序的一次执行过程中,根据不同的情况,只选择一个分支执行,其他分支上的语句直接跳过。
在C语言中,提供了if语句和switch语句的选择结构。if语句用于从多个分支中选择一个,而switch用于从多个分支中选择一个。
3.3.1 if语句
1。if语句的两种基本形式
首先我们来看一个例子,从而理解choice结构的含义和设计方法。
[例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)最小输出。
提炼步骤2)如下:i f A < B,则MIN步骤3)提炼如下:i f C < M I N,则MIN
对应图3-1和图3-2,这是i f语句的两种基本形式。与图3-2对应的I F语句的格式是
if。
图3-1对应的i f语句格式为:
if
语句1
else
语句2。
当表达式为真时,执行语句1;当表达式为false时,执行语句2。在任何情况下,一次只能执行语句1和语句2中的一个。
需要注意的是:如果或者如果...else,包括后面要讲的嵌套if,也就是if...否则如果...被视为一个语句,即使其中的语句是包含多个语句的复合语句,情况依然如此。
下面是例3-5的源程序:
main ()
{
int a,b,c,min
printf(" input a,b,c:");
scanf("%d %d %d ",&a,&b,& c);
if(a min = a;
else
min = b;
if(c min = c;
printf("结果为%d\n ",min);
}
实现如下:
输入A,B,C: 352
结果为:2
这里顺便提一下程序编写的缩进问题。所谓缩进,就是下一行的开头与上一行相比向右缩进字符,如上例。适当的缩进可以使程序的结构和层次一目了然,增加程序的可读性。一个好的写作习惯应该从一开始就养成,包括必要的注释,适当的空行和缩进。
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;
再细化,用Y换X;
①T2X③Y算法流程图见图3-3。
程序如下:
# include
main()
{
float x,y,t;
printf("input x,y:");
0条评论