C语言程序设计(第四版)(微课版)ch04 选择结构程序设计_第1页
C语言程序设计(第四版)(微课版)ch04 选择结构程序设计_第2页
C语言程序设计(第四版)(微课版)ch04 选择结构程序设计_第3页
C语言程序设计(第四版)(微课版)ch04 选择结构程序设计_第4页
C语言程序设计(第四版)(微课版)ch04 选择结构程序设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

4.1选择结构程序概述4.2if语句4.3switch语句选择结构单分支双分支if(表达式)语句多分支if(表达式)语句1else语句2if(表达式1)语句1elseif(表达式2)语句2……else语句nif语句的嵌套switch语句4.1.1简单if语句1.语法格式

if(条件)语句2.说明(1)执行过程:

当条件为“真”时,执行语句;为“假”时,跳过语句,而直接执行整个if语句后的其它语句。(2)条件中的结果为逻辑值。(3)语句如果有多条语句,要用一对花括号“{}”将其括起来,成为一个复合语句。例4.1#include<stdio.h>main(){ floatx,y; printf("请输入数据:\n"); scanf("%f",&x); y=x;/*初始化y值*/

if(x<0)y=-x*x; printf("f(%.2f)=%.2f",x,y);}例4.2#include<stdio.h>main(){ floata,b,temp; scanf("%f%f",&a,&b);

if(a>b) { temp=a;/*三条语句,实现a、b变量值交换*/ a=b; b=temp; } printf("a=%.2fb=%.2f\n",a,b);}4.1.2if...else语句1.语法格式if(条件)

语句1else语句22.说明(1)执行过程:当条件为“真”时,执行语句1;为“假”时,执行语句2。(2)语句1和语句2都可为复合语句。例4.3#include<stdio.h>main(){ floatweight,pay; printf("请输入重量\n"); scanf("%f",&weight);

if(weight<=50) pay=weight*0.35; else pay=50*0.35+(weight-50)*0.5; printf("pay=%.2f",pay);}比较a、b两个数的大小,将较大数赋给max。 inta,b,max;a=1;b=2;

if(a>b) max=a; else max=b; printf("%d",max);嵌套if...else语句在一个if...else语句中又包含一个或多个if...else语句时,称为嵌套if...else语句。在C语言中允许多层嵌套。例4.4使用嵌套if语句来选出三个数字中最大的数,然后再显示它#include<stdio.h>main(){ floata,b,c; printf(“Enterthreevalues\n”); scanf(“%f%f%f”,&a,&b,&c); printf(“\nLargestvaluesis”); if(a>b) { if(a>c) printf(“%f\n”,a); else printf(“%f\n”,c); } else { if(c>b) printf(“%f\n”,c); else printf(“%f\n”,b); }}4.1.4阶梯式if...else语句利用阶梯式if...else可解决多分支的问题。其一般形式如下:if(条件表达式1)语句序列1elseif(条件表达式2)语句序列2 elseif(条件表达式3)语句序列3 elseif(条件表达式4)语句序列4 ...

elseif(条件表达式n-1)语句序列n-1

else语句序列n

如果没有任何缩进,我们应准确判断出if和else的配对关系,在下表中同时给出了正确的嵌套形式和错误的嵌套形式,结果是不同。在C语言中,一个else语句总是与最近的未终止的if匹配。原型嵌套:正确理解嵌套:错误理解m=0;

if(a<b)

if(a<c)

m=10;

else

m=20;

printf("m=%d",m);m=0;

if(a<b)

{if(a<c)

m=10;

else

m=20;

}printf("m=%d",m);m=0;

if(a<b)

{if(a<c)

m=10;}

else

m=20;

printf("m=%d",m);当a=2;b=1;c=3;时,结果:m=0当a=2;b=1;c=3;时,结果:m=0当a=2;b=1;c=3;时,结果:m=20当a=2;b=3;c=1;时,结果:m=20当a=2;b=3;c=1;时,结果:m=20当a=2;b=3;c=1;时,结果:m=0当a=1;b=2;c=3;时,结果:m=10当a=1;b=2;c=3;时,结果:m=10当a=1;b=2;c=3;时,结果:m=104.2switch语句1.语法格式switch(表达式){case常量表达式1:[语句序列1];[break;]case常量表达式2:[语句序列2];[break;]…case常量表达式n:[语句序列n];[break;][default:语句序列]}2.执行流程例4.5根据输入的数据判断星期几,然后再显示它#include<stdio.h>main(){ inta; printf("inputintegernumber:\n"); scanf("%d",&a); switch(a) { case1:printf("Monday\n"); case2:printf("Tudsdtay\n"); case3:printf("Wednesday\n"); case4:printf("Thursday\n"); case5:printf("Friday\n"); case6:printf("Saturday\n"); case7:printf("Sunday\n"); default:printf("error!\n"); }}运行结果:inputintegernumber:

3↙WednesdayThursdayFridaySaturdaySundayerror!3case3:printf("Wednesday\n");case4:printf("Thursday\n");case5:printf("Friday\n");case6:printf("Saturday\n");case7:printf("Sunday\n");default:printf("error!\n");例4.5根据输入的数据判断星期几,然后再显示它#include<stdio.h>main(){ inta; printf("inputintegernumber:\n"); scanf("%d",&a); switch(a) { case1:printf("Monday\n");break; case2:printf("Tudsdtay\n");break; case3:printf("Wednesday\n");break; case4:printf("Thursday\n");break; case5:printf("Friday\n");break

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论