Welcome

首页 / 软件开发 / C语言 / C语言条件控制语句(一)

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

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<MIN,则MIN<==C;其流程图见图3-2。

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

if <表达式> 语句

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

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

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

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

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

main()
{
int a,b,c,min;
printf("input a,b,c:");
scanf("%d%d%d",&a,&b,&c);
if(a<b)
min=a;
else
min=b;
if(c<min)
min=c;
printf("There sult is%d ",min);
}

执行情况如下:

RUN
inputa,b,c:3 5 2
Theresultis:2

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