欢迎来到天天文库
浏览记录
ID:48733101
大小:797.50 KB
页数:36页
时间:2020-01-20
《--选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章选择结构程序设计西南林学院计科系鲁莹C语言程序设计本章主要内容3.1if语句3.2条件运算符和表达式3.3switch语句3.4选择结构应用实例3.1if语句3.1.1if语句的三种形式3.1.2if语句的嵌套3.1if语句的三种形式if语句一般格式(单分支)if(表达式)语句功能:计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。内嵌语句,可为:赋值语句函数调用语句控制语句复合语句空语句可为算术、关系、逻辑、赋值等表达式简单分支语句的算法:例如:⑴if(x>0)m++;⑵if(a>
2、b){c=a;a=b;b=c;}语句流程图假真表达式表达式非0TF语句N-S结构图双重分支语句语句一般格式if(表达式)语句1else语句2功能:计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。注意:表达式的一般为关系表达式或逻辑表达式,也可以为其他任意形式的表达式。双重分支语句的算法:例如:⑴if(x>0)m++;elsem--;⑵if(ch>='a'&&ch<='z'){ch=ch-32;printf("%c",ch);}elsepri
3、ntf("%c",ch);语句1语句2流程图假N真表达式多重分支语句语句一般格式if(表达式1)语句1elseif(表达式2)语句2……elseif(表达式m)语句melse语句n功能:依次计算并判断表达式i,为非0时执行后面的语句,都为0时,执行语句n无论执行完那个语句分支,都转到后续语句多重分支语句的算法流程图表达式2表达式1语句n语句1语句2语句m…真假真假假真表达式m多重分支语句的算法N-S结构图表达式1?TF表达式2?语句1TF语句2…表达式m?TF语句m语句n例如:if(a<0)x=-1;elseif(a==0)x=0;elsex=1
4、;if语句的简单应用【例3.1】输入一个字符,如果是大写字母,则将其转换为小写字母输出,否则直接输出。输入:用getchar或scanf函数ch是否为大写字母:ch>='A'&&ch<='Z'(或ch>=65&&ch<=90)大写字母转换为小写字母:ch=ch+32输出:用putchar或printf函数思路:程序:#include"stdio.h"main(){charch;ch=getchar();if(ch>='A'&&ch<='Z')ch=ch+32;printf("%c“,ch);}程序运行情况如下:Gg可使用条件表达式代替putch
5、ar(ch>='A'&&ch<='Z'?ch+32:ch);putchar('')3.1.2if语句的嵌套如果if的内嵌语句中又使用了一个if语句,则构成if语句的嵌套。【例3.2】比较两个整数的关系。#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语句双重(或多重)分支if语句的嵌套形式if(表达式)if语句elseif语句可以是各种形式的if语句可以是各种形式的if语句如果是简单if语句,必须用“{}”括起例如:⑴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("1007、intf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50")与哪个if配对?再例如:if(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最近的尚未配对的if配对。举例【例3.3】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。定义变量x输入x的值x是奇数TF输出“odd”x是5的倍数输出“even”T8、F是5的倍数程序:main(){intx;scanf("%d",&x);if(x%2!=0){printf(
6、对提倡缩格书写有利于阅读程序if语句嵌套的形式简单if语句的嵌套形式if(表达式)if语句双重(或多重)分支if语句的嵌套形式if(表达式)if语句elseif语句可以是各种形式的if语句可以是各种形式的if语句如果是简单if语句,必须用“{}”括起例如:⑴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("1007、intf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50")与哪个if配对?再例如:if(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最近的尚未配对的if配对。举例【例3.3】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。定义变量x输入x的值x是奇数TF输出“odd”x是5的倍数输出“even”T8、F是5的倍数程序:main(){intx;scanf("%d",&x);if(x%2!=0){printf(
7、intf("c>150");⑶if(c<=100)if(c>=50)printf("50<=c<=100");elseprintf("c<50")与哪个if配对?再例如:if(a>b)if(a>c)if(a>d)m=1;elsem=2;elsem=3;问题:哪一个else和哪一个if相匹配?规则:在嵌套的if~else语句中,else总是与上面的离它最近的尚未配对的if配对。举例【例3.3】输入一个数,判断它是奇数还是偶数,如果是奇数则进一步判断它是否为5的倍数。定义变量x输入x的值x是奇数TF输出“odd”x是5的倍数输出“even”T
8、F是5的倍数程序:main(){intx;scanf("%d",&x);if(x%2!=0){printf(
此文档下载收益归作者所有