欢迎来到天天文库
浏览记录
ID:24287226
大小:1016.29 KB
页数:66页
时间:2018-11-13
《c语言设计chapter 3》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言基础--选择/循环结构程序设计www.gemsoftware.com.cnTheCProgramming2021/8/32Overview3.1选择结构If语句Switch语句选择结构程序设计举例3.2循环结构While/do-while循环控制For循环控制循环结构中的跳转语句循环的嵌套循环结构程序设计举例2021/8/33简单分支语句语句一般格式if(表达式)语句功能:计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。内嵌语句,可为:赋值语句函数调用语句控制语句复合语句
2、空语句可为算术、关系、逻辑、赋值等表达式2021/8/34简单分支语句的算法:例如:⑴if(x>0)m++;⑵if(a>b){c=a;a=b;b=c;}表达式非0TF语句N-S结构图语句流程图NY表达式非0?2021/8/35双重分支语句语句一般格式if(表达式)语句1else语句2功能:计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。2021/8/36双重分支语句的算法:例如:⑴if(x>0)m++;elsem--;⑵if(ch>
3、='a'&&ch<='z'){ch=ch-32;printf("%c",ch);}elseprintf("%c",ch);表达式非0TF语句1语句2N-S结构图语句1语句2流程图NY表达式非0?2021/8/37多重分支语句语句一般格式if(表达式1)语句1elseif(表达式2)语句2……elseif(表达式m)语句melse语句n功能:依次计算并判断表达式i,为非0时执行后面的语句,都为0时,执行语句n无论执行完那个语句分支,都转到后续语句2021/8/38多重分支语句的算法流程图表达式2?表达式1?语句n语句1语句2语句m…
4、YNYNNY表达式m?2021/8/39多重分支语句的算法N-S结构图表达式1?TF表达式2?语句1TF语句2…表达式m?TF语句m语句n例如:if(a<0)x=-1;elseif(a==0)x=0;elsex=1;2021/8/310if语句的简单应用【例3.1】输入一个字符,如果是大写字母,则将其转换为小写字母输出,否则直接输出。输入:用getchar或scanf函数ch是否为大写字母:ch>='A'&&ch<='Z'(或ch>=65&&ch<=90)大写字母转换为小写字母:ch=ch+32输出:用putchar或printf函数思路
5、:2021/8/311程序:#include"stdio.h"main(){charch;ch=getchar();if(ch>='A'&&ch<='Z')ch=ch+32;printf("%c",ch);}程序运行情况如下:Gg可使用条件表达式代替putchar(ch>='A'&&ch<='Z'?ch+32:ch);putchar('')2021/8/3123.1.2if语句的嵌套如果if的内嵌语句中又使用了一个if语句,则构成if语句的嵌套。【例3.a】比较两个整数的关系。#includemain(){in
6、tx,y;printf("EnterintegerXandY:");scanf("%d%d",&x,&y);if(x!=y)if(x>y)printf("X>Y");elseprintf("X7、语句,必须用“{}”括起2021/8/314例如:⑴if(c<=100)if(c>=50)printf("50<=c<=100");⑵if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50");elseif(c<=150)printf("100150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50")与哪个if配对?2021/8/3158、再例如:if(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最
7、语句,必须用“{}”括起2021/8/314例如:⑴if(c<=100)if(c>=50)printf("50<=c<=100");⑵if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50");elseif(c<=150)printf("100150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50")与哪个if配对?2021/8/315
8、再例如:if(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最
此文档下载收益归作者所有