第四章 选择结构程序设计

更新时间:2023-11-11 04:45:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第四章 选择结构程序设计

【本章要求】

1、掌握C语言中if语句的定义及使用。 2、掌握条件表达式的使用及注意事项。

3、掌握C语言中switch语句的定义及使用。 4、理解选择结构的程序设计。

4.1 if语句

4.1.1 单边选择结构

单边选择结构的一般形式为: if(表达式)语句; 【执行过程】

如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其中“表达式”为判断条件,而“语句”可以是单语句,也可以是复合语句,即用花括号“{}”括起来的一组语句。其过程如下图所示。

【例4.1】输入两个数a,b,输出两个数中的较大者。

#include \main( ) {

int a,b,max;

printf(\ scanf(\ max=a;

if (max

printf(\ }

【运行结果】

从键盘上输入:

- 38 -

第四章 选择结构程序设计

4 7 输出结果: max=7

【例4.2】输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。

#include \main( )

{int num1,num2,num3,temp;

printf(\ scanf(\

if (num1>num2) {temp=num1;num1=num2;num2=temp;} if (num2>num3) {temp=num2;num2=num3;num3=temp;} if (num1>num2) {temp=num1;num1=num2;num2=temp;}

printf(\}

【运行结果】

程序运行情况如下:

Please input three numbers:11,22,18 Three numbers after sorted: 11,18,22

4.1.2 双边选择结构

双边选择结构的一般形式为: if(表达式) {语句组1} else {语句组2} 或

if(表达式)

{语句组1}

else

{语句组2}

【执行过程】

如果表达式的值不等于0(即判定为“逻辑真”)时,则执行语句组1;否则,执行语句组2。其中语句组1、语句组2可以是一条语句,也可以是多条语句。当为一条语句时,可以不加花括号,也可以保留花括号;当为多条语句时,则必须加上花括号。其过程如下图所示。

【说明】

1、if语句中的“表达式”必须用“(”和“)”括起来。

2、else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。

3、当if和else后面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花

- 39 -

《C语言程序设计》

括号)。

【例4.3】输入任意两个整数x、y,求两个数中的最大值。

#include \ main( ) {int a, b;

printf(\scanf(\

printf(\ if(x>y) printf(\else printf(\}

【运行结果】

程序运行情况如下:

input two numbers:22 33 The two numbers are:22,33 max=22

【例4.4】输入任意三个整数num1、num2、num3,求三个数中的最大值。

#include \ main( )

{int num1,num2,num3,max;

printf(\scanf(\if (num1>num2) max=num1; else max=num2; if (num3>max) max=num3;

printf(\printf(\}

【运行结果】

程序运行情况如下:

Please input three numbers:11,22,18 The three numbers are:11,22,18 max=22

4.1.3 多分支选择

多分支选择的一般形式为:

if (表达式1) 语句1; else if (表达式2)语句2; else if (表达式3)语句3; ??

else if (表达式n)语句n; else 语句n+1; 【执行过程】

- 40 -

第四章 选择结构程序设计

依次判断表达式的值,当出现某个值为真(即为非0)时,则执行其对应的语句。然后使整个if语句结束,其余语句不被执行。 如果所有的表达式均为假,则执行else后的语句n+1。然后继续执行后续程序。 其执行过程如下图所示。

【例4.5】已知3门课的成绩。当平均成绩高于90分时,输出A;当平均成绩为80~89分时,输出B;当平均成绩为70~79分时,输出C;当平均成绩为60~69分时,输出D;当平均成绩低于60分时,输出E。

#include \stdio.h\ void main( )

{int score1,score2,score3,sum,ave; printf(\Input the score: \);

scanf(\%d,%d,%d\,&score1,&score2,&score3); sum=score1+score2+score3; ave=sum/3;

printf (\average=\);

if(ave>=90) printf(\A\\n\); else if(ave>=80)printf(\B\\n\); else if(ave>=70)printf(\C\\n\); else if(ave>=60)printf(\D\\n\); else printf(\E\\n\); }

【运行结果】

程序运行情况如下:

Input the score: 86 average= B

【例4.6】 判断输入字符ASCII码所在的范围,分别给出不同的输出。。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。 在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母, 在“a”和“z”之间为小写字母,其余则为其它字符。

#include \main( ) {char c;

printf(\c=getchar( );

- 41 -

《C语言程序设计》

if(c<32)

printf(\else if(c>='0'&&c<='9')

printf(\

else if(c>='A'&&c<='Z')

printf(\

else if(c>='a'&&c<='z')

printf(\else

printf(\}

【运行结果】

程序运行情况如下:

input a character:

如果输入字符g,则输出结果为

This is a small letter.

如果输入字符G,则输出结果为

This is a capital letter. 【说明】

1、在三种形式的if语句中,在if关键字之后均为表达式。 该表达式通常是逻辑表达式或关系表达式, 也可以是其它表达式,甚至也可以是一个变量或常量。 例如:

if(x=5) 语句; if(3) 语句;

都是允许的。只要表达式的值为非0,即为“真”。

如果有if(x=5)…; 不难看出表达式的值永远为非0,所以其后的语句总是要执行的,虽然这样写if语句就失去了原有的价值,但在语法上是合法的。

2、在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。

3、在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用花括号{}括起来组成一个复合语句,同时要注意的是在}之后不能再加分号。

例如:

if(x>y) {x++; y++;} else {x--; y--;}

4.1.4 嵌套if语句

在if 语句中,可以包含一个或多个if语句,构成嵌套的if语句.其一般形式为: if (表达式 a)

if (表达式b) 语句b1; else 语句b2; else

if (表达式c) 语句c1; else 语句c2; 【说明】

- 42 -

本文来源:https://www.bwwdw.com/article/tksv.html

Top