内容发布更新时间 : 2025/1/7 5:30:45星期一 下面是文章的全部内容请认真阅读。
在程序的三种基本结构中,第二种即为选择结构,其基本特点是:程序的流程由多路分支 组成,在程序的一次执行过程中,根据不同的情况,只有一条支路被选中执行,而其他分支上的语句被直接跳过.
C语言中,提供if语句和switch语句选择结构,if语句用于两者选一的情况,而switch用于多分支选一的情形. 3.3.1if语句
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
对应图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() {
inta,b,c,min;
printf(\
1 / 10
scanf(\if(a
printf(\}
执行情况如下: RUN
inputa,b,c:3 5 2 Theresultis:2
这里顺便提一下程序书写的缩排问题,所谓缩排,就是下一行与上一行相比,行首向右缩进若字符,如上例的min=a、min=b等.适当的缩排能使程序的结构、层次清晰、一目了然,增加程序的易读性.应该从一开始就养成一个比较好的书写习惯,包括必要的注释、适当的空行以及缩排. 2.复合语句
if语句中,有时需要执行的语句不止一条,这就要用到复合语句. 复合语句,就是用一对花括号括起来的一条或多条语句,形式如下: { 语句1; 语句2; ....... 语句n; }
无论包括多少条语句,复合语句从逻辑上讲,被看成是一条语句. 复合语句在分支结构、循环结构中,使用十分广泛. [例3-6]读入两个数x、y,将大数存入x,小数存入y.
分析:x、y从键盘读入,若x>=y,只需顺序打出,否则,应将x,y中的数进行交换,然后
2 / 10
输出.两数交换必须使用一个中间变量t,定义三个浮点数x、y、t. 算法: 1)读入x、y;
2)大数存入x,小数存入y; 3)输出x、y. 第2)步求精: 若x 算法的流程图见图3-3,程序如下: #include floatx,y,t; printf(\scanf(\if(x printf(\} 执行结果: inputx,y:43.256.7 result:56.70043.200 3.if...elseif语句 实际应用中常常面对更多的选择,这时,将if...else扩展一下,就得到if...elseif结构,其一般形式为: if<表达式1> 语句1 elseif<表达式2> 语句2 elseif<表达式3> 语句3 else语句4 对应的流程图见图3-4. 3 / 10