欢迎来到天天文库
浏览记录
ID:48743554
大小:183.50 KB
页数:32页
时间:2020-01-21
《第4章——C语言学习.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章选择结构程序设计北京科技大学计算机系C语言程序设计本章主要内容4.1if语句4.1.1if语句的一般形式4.1.2if语句的嵌套4.2switch语句4.2.1switch语句的一般形式4.2.2break语句4.3选择结构程序设计举例2简单分支语句语句一般格式if(表达式)语句功能:计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。内嵌语句,可为:赋值语句函数调用语句控制语句复合语句空语句可为算术、关系、逻辑、赋值等表达式3简单分支语句的算法:例如:⑴if(x>0)m++;⑵if(a>b){c=a;a=b;b=c;}表达
2、式非0TF语句N-S结构图语句流程图NY表达式非0?4双重分支语句语句一般格式if(表达式)语句1else语句2功能:计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。5双重分支语句的算法:例如:⑴if(x>0)m++;elsem--;⑵if(ch>='a'&&ch<='z'){ch=ch-32;printf("%c",ch);}elseprintf("%c",ch);表达式非0TF语句1语句2N-S结构图语句1语句2流程图NY表达式非0?6多重分支语句语句一般格式if(表达
3、式1)语句1elseif(表达式2)语句2……elseif(表达式m)语句melse语句n功能:依次计算并判断表达式i,为非0时执行后面的语句,都为0时,执行语句n无论执行完那个语句分支,都转到后续语句7多重分支语句的算法流程图表达式2?表达式1?语句n语句1语句2语句m…YNYNNY表达式m?8多重分支语句的算法N-S结构图表达式1?TF表达式2?语句1TF语句2…表达式m?TF语句m语句n例如:if(a<0)x=-1;elseif(a==0)x=0;elsex=1;9if语句的简单应用【例4.1】输入一个字符,如果是大写字母,则将其转换为小写字母输出,否则直接输出。输入:用getch
4、ar或scnaf函数ch是否为大写字母:ch>='A'&&ch<='Z'(或ch>=65&&ch<=90)大写字母转换为小写字母:ch=ch+32输出:用putchar或printf函数思路:10程序:#include"stdio.h"main(){charch;ch=getchar();if(ch>='A'&&ch<='Z')ch=ch+32;printf("%c",ch);}程序运行情况如下:Gg运行jc4_1可使用条件表达式代替putchar(ch>='A'&&ch<='Z'?ch+32:ch);putchar('')114.1.2if语句的嵌套如果if的内嵌语句中又使用
5、了一个if语句,则构成if语句的嵌套。【例4.a】比较两个整数的关系。#includemain(){intx,y;printf("EnterintegerXandY:");scanf("%d%d",&x,&y);if(x!=y)if(x>y)printf("X>Y");elseprintf("X6、if语句可以是各种形式的if语句可以是各种形式的if语句如果是简单if语句,必须用“{}”括起13例如:⑴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配对?14再例如:if7、(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最近的尚未配对的if配对。15举例【例4.4】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。定义变量x输入x的值x是奇数TF输出“odd”x是5的倍数输出“even”TF是5的倍数16程序:main(){intx;scanf("%
6、if语句可以是各种形式的if语句可以是各种形式的if语句如果是简单if语句,必须用“{}”括起13例如:⑴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配对?14再例如:if
7、(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最近的尚未配对的if配对。15举例【例4.4】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。定义变量x输入x的值x是奇数TF输出“odd”x是5的倍数输出“even”TF是5的倍数16程序:main(){intx;scanf("%
此文档下载收益归作者所有