编辑: 5天午托 | 2019-07-12 |
一、 if语句例程3.1 输入任意四个整数a、b、c和d,求四个数中的最大值./*功能:说明if 语句的格式*/ main(){ int a,b,c,d,max;
printf("Please input four numbers:");
scanf("%d%d%d%d",&a,&b,&c,&d);
if (a>b) max=a;
else max=b;
if (c>max) max=c;
if (d>max) max=d;
printf("max=%d\n",max);
} 程序运行情况如下: Please input four numbers:11
22 18 19Lmax=22本例中的第1个if语句,可优化为如下不带else子句的形式:max=a;
if(b>max) max=b;
这种优化形式的基本思想是:首先取一个数预置为max(最大值),然后再用max依次与其余的数逐个比较,如果发现有比max大的,就用它给max重新赋值,比较完所有的数后,max中的数就是最大值.这种方法,对从3个以上的数中找最大值的处理,非常有效. 1.if语句的一般格式 if(表达式)语句组1;
} [else {语句组2;
} ](1)if语句中的"表达式"必须用"()"括起来.(2)else子句(可选)是if语句的一部分,须与if配对使用,不能单独使用.(3)当if和else下面的语句组,仅由一条语句时,也可不使用复合语句形式(即去掉花括号). 2.if语句的执行过程(1)缺省else子句时 当"表达式"的值不等于0(即判定为"逻辑真")时,则执行语句组1,否则直接转向执行下一条.如图见教材79页3.7(a)所示.(2)指定else子句时当"表达式"的值不等于0(即判定为"逻辑真")时,则执行语句组1,然后转向下一条语句;
否则,执行语句组2.如图见教材79页3.7(b)所示. 3.if语句的嵌套与嵌套匹配原则 if语句允许嵌套.所谓if语句的嵌套是指,在"语句组1"或(和)"语句组2"中,又包含有if语句的情况. if语句嵌套时,else子句与if的匹配原则:与在它上面、距它最近、且尚未匹配的if配对.为明确匹配关系,避免匹配错误,强烈建议:将内嵌的if语句,一律用花括号括起来.例程3.2见教材82页例3.4 4.说明 (1)if后面的"表达式",除常见的关系表达式或逻辑表达式外,也允许是其它类型的数据,如整型、实型、字符型等. (2)if语句允许嵌套,但嵌套的层数不宜太多.在实际编程时,应适当控制嵌套层数(2~3层). (3)"语句组1"和"语句组2",可以只包含一个简单语句,也可以是复合语句. (4) 只要if else语句中的语句组是由表达式构成的,都可以用条件表达式语句替代. (5)不管是简单语句,还是复合语句中的各个语句,每个语句后面的分号必不可少! 例如: if (num1>num2) max=num1;
else max=num2;
if行后面的赋值语句"max=num1;
"分号不能省略.但不要误认为if和else是2个独立的语句,它们都属于if语句中的一部分,else是if语句的子句. 例程3.3见教材82页例3.5作业:教材127页1~6题;
实验名称:分支结构程序实验内容:上机运行教材83页例3.
4、3.5教材127页
2、3题、129页6题
二、 switch语句 C语言提供了switch语句直接处理多分支选择.[例程3.4] 从键盘上输入一个百分制成绩score,按下列原则输出其等级:score≥90,等级为A;
80≤score