第5章选择结构程序设计
学习目标:
掌握if语句的一般应用及嵌套
掌握switch语句的一般应用及嵌套
掌握if语句和switch语句的相互转换
选择结构是三种基本结构中的一种。在大多数程序中都会用到选择结构来实现。它的作用是要设计选择结构程序,要考虑两个方面的问题:一是在C语言中如何来表示条件,二是在C语言中实现选择结构用什么语句。在C语言中表示条件,一般用关系表达式或逻辑表达式,实现选择结构用if语句或switch语句。
if语句
在学习if语句之前,我们先看两个if语句的例子,来体会if语句的用法。
[] 输入任意三个整数num1、num2、num3,求三个数中的最大值。
main()
{
int num1,num2,num3,max;
printf("Please input three numbers: ");
scanf("%d,%d,%d",&num1,&num2,&num3);
if (num1>num2)
max=num1;
else
max=num2;
if (num3>max)
max=num3;
printf("The three numbers are:%d,%d,%d\n",num1,num2,num3);
printf("The max number is: %d\n",max);
}
程序运行情况如下:
Please input three numbers:11,22,18↙
The three numbers are:11,22,18
The max number is : 22
[例 ] 输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。
main()
{
int num1,num2,num3,temp;
printf("Please input three numbers:");
scanf("%d,%d,%d",&num1,&num2,&num3);
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("Three numbers after sorted: %d,%d,%d\n",num1,num2,num3);
}
程序运行情况如下:
Please input three numbers:11,22,18↙
Three numbers after sorted: 11,18,22
结果分析:本例是从键盘上输入三个数,进行两两之间的比较,如满足的是大于的关系则把两个数进行交换,否则不变。(temp=a;a=b;b=temp;)三条语句表示的是交换a和b。经过三个数两两之间的比较和处理之后,得到的结果是num1、num2、num3按从小到大的顺序依次存放输入的三个数。
if语句的一般应用
:
(1)if(表达式)语句
(2)if(表达式) 语句1
else(表达式) 语句2
(3)if (表达式1) 语句1
else if(表达式2) 语句2
…
else if(表达式m) 语句m
else 语句n
说明:
(1)if后面的表达式一般为逻辑表达式或关系表达式,if语句中的“表达式”必须用“()”括起来,而且表达式后不能加分号”;”,如:if(a<b;)是错误的。
(2)else子句(可选)是if语句的一部分,必须与if配对使用,不能单独使用。
(3)在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句。当if和else下面的语句组,仅由一条语句构成时,也可不使用复合语句形式(即去掉花括号)。
(4)在if和else后面的{}内是一个完整的复合语句,故不必在其后另附加分号。
(5)if语句的执行过程: 缺省else子句时,当“表达式”的值不为0(即判定为“逻辑真”)时,则执行语句组1,否则直接转向执行下一条。指定else子句时,当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。
if语句的嵌套与嵌套匹配原则
if语句允许嵌套。所谓if语句的嵌套是指,在if语句中又包含一个或多个if语句,即在“语句组1”或(和)“语句组2”中,又包含有if语句的情况。一般形式如下:
if ( )
if ( ) 语句 1
内嵌if
else 语句 2
else
if ( ) 语句 3
内嵌if
else 语句 4
if语
第5章 选择结构程序设计 来自淘豆网m.daumloan.com转载请标明出处.