第3章 选择结构流程和应用

合集下载

第3章 顺序、选择和循环

第3章 顺序、选择和循环
#include <iostream> using namespace std; int main() { 外层块开始 int i = 5, j = 6; cout<<i<<'\t'<<j<<endl; { 内层块开始 int i = 2, j = 3, k = 4; cout<<i<<'\t'<<j<<'\t'<<k<<endl; } 内层块结束 cout<<i<<'\t'<<j<<endl; 但不能使用k return 0; } 外层块结束
3.1.2 表达式语句
表达式语句是C++程序中最简单也是最常用的语句。任何一个表达式加上分号 就是一个表达式语句,例如: x + y; nNum = 5; 在书写格式上,可以将几个简单的表达式语句同时写在一行上,但此时的语 句之间必须插入一些空格以提高程序的可读性。例如: a = 1; b = 2; c = a + b;
3.3.2 do…while语句
例如,用do...while循环语句求整数1到50的和。 【例Ex_SumDoWhile】求整数1到50的和 #include <iostream> using namespace std; int main() { int nNum = 1, nTotal = 0; do{ nTotal += nNum; nNum++; } while (nNum<=50); cout<<"The sum from 1 to 50 is: "<<nTotal<<"\n"; return 0; } 程序运行的结果如下: The sum from 1 to 50 is: 1275

高中信息技术必修课件程序的选择结构

高中信息技术必修课件程序的选择结构

其他算法中的选择结构
分治算法
将问题分解成若干个子问题,选择结 构用于判断子问题的类型和规模。
回溯算法
通过探索所有可能的解来求解问题, 选择结构用于判断是否满足约束条件 和剪枝策略。
动态规划
将问题分解为更小的子问题,并将子 问题的解保存起来以便后续使用,选 择结构用于判断子问题的状态和转移 方式。
06
首先计算表达式的值,然后与每个case的值进行比较,如果匹配则执行相应的语句块,直 到遇到break或switch语句结束。
switch语句的注意事项
case后的值必须是常量或字面量,且类型必须与表达式类型兼容;如果没有任何case与 表达式值匹配,则执行default后的语句块。
条件运算符
条件运算符的基本语法
判断。
switch语句
switch语句的基本语法
switch (expression) { case value1: statements1; break; case value2: statements2; break; ... default: statements; }
switch语句的执行流程
充分测试
在编写完选择结构后,要进行充分的测试,包括正常情况和异常 情况,确保程序的正确性和稳定性。
THANK YOU
感谢聆听
嵌套选择结构的实现方法
if语句的嵌套
在if语句内部使用另一个if语句,根据条件判断执行相应的代码块 。
switch语句的嵌套
在switch语句内部使用另一个switch语句,根据不同的条件执行相 应的代码块。
if-else语句的嵌套
在if或else语句内部使用另一个if-else语句,实现更复杂的条件判 断和分支控制。

第3章 选择结构(C++版)

第3章  选择结构(C++版)

if (条件表达式) 语句1; else 语句2;
true
条件表达式
flase
程序设计风格提示:书 写if-else语句时,if和else 要对齐,而分支的语句部分 要缩进两格。
语句块1
语句块2
图3-2
例3.4 根据用户输入的成绩,判断是否通过了考试。 #include<iostream > using namespace std; int main() { int c; cin >> c; if (c>=60) cout<<"pass! \n"; else cout<<"sorry!\n"; return 0; }
第二节 if选择结构
C++提供三种选择结构,即if选择结构、if-else选择结构 和switch选择结构。 一、if语句(单分支结构) 格式1:
if (条件表达式) 语句1;
功能:如果条件表达式的值为真, 即条件成立,语句1将被执行。否则, 语句1将被忽略(不被执行),程序将 按顺序从整个选择结构之后的下一条 语句继续执行。执行流程如图3-1所示 说明:格式中的“条件表达式”必 须用圆括号括起来。


if、else、switch、while、do和for等都是C++关键字。 这些关键字是该语言保留的,用于实现C++控制结构的不同 特性。关键字不能作为变量名等一些标识符。注意,将关键 字while的拼写变为“While”是个语法错误,因为C++是区分 大小写的语言。while、if和else等所有C++保留关键字只能 语句1
图3-1

03第3章 选择结构

03第3章 选择结构
程序的结果
m1=?
m2=?
n=%d\n",m1,m2,n);
在C的逻辑表达式的求解过程中,并不是所有的逻 辑运算符都被执行,只是在必须执行下一个逻辑运 算符才能求出表达式的解时才执行该逻辑运算
10
条件表达式
由条件运算符?和:把多个表达式连接起来的式子:
e1 ? e2:e3
其中:e1、e2、e3可以是变量或表达式
15
该算法假定程序处理后,a 中放三个数中的最大值,b 中放三个数中的次大值,c 中放三个数中的最小值
if语句的第二种形式-可构成两路选择结构
if(表达式) 语句组1 else 语句组2
执行过程 :若表达式的 值为真,则执行语句组1 ;若表达式的值为假,则 执行语句组2。选择结构 执行完成后,执行结构后 的第1条语句。
关系表达式的值有逻辑真和逻辑假。当表达式成 == „g‟==‟G‟ 0 等于 立时值为“真”,用整数“1”表示;当表达式不 != 5>3!=1 0 不等于 成立时值为“假”,用整数“0”表示 C中无逻辑型数据,常用整型变量存放逻辑值
6
关系表达式举例
例 设a= ' 4 ',b= ' f ' ,判断下列关系表达式的值 ' A ' < ' B ' 相当于:65<66,值为真 a>b 相当于: ' 4 ' > ' f '或52>102,值为假
23
选择结构的嵌套
main() { int x=1,y=0,a=0,b=0; 无break将继 switch(x) 续往下执行 { case 1: switch(y) { case 1: a++; break; case 0: b++; if、switch 可相互嵌套 case 2: b++; break; } case 2: a++; b++; break; case 3: a++; b++; } printf("\n a=%d,b=%d",a,b);}

第3章 选择结构和循环结构 《C语言程序设计及应用教程》课件

第3章 选择结构和循环结构  《C语言程序设计及应用教程》课件
第3章 选择结构和循环结构 《C语言 程序设计及应用教程》课件
【内容摘要】
(1)知识点:选择结构;循环结构。 (2)难点:选择、循环结构的综合使用 (3)重点:if、switch、while、do…while、for语句
本章节次
3.1 选择结构 3.2 循环控制结构 3.3 控制结构应用举例
3.1 选择结构
多分支选择结构流程图
Y 语句1
表达式1 Y
N
表达式2
N
Y
表达式3
N ......
Y
表达式n
语句2
语句3
......
语句n
N 语句n+1

【例3-4】从键盘上输入一个字符c,判断它是英文字母、数字或
其他字符。
算法设计: (1)本题目做三种情况的判断: 英文字母:c>='a'&&c<='z'|| c>='A'&&c<='Z'; 数字字符:c>='0'&&c<='9'; 其他字符:。 (2)用两个if-else嵌套的选择结构。
“拉闸限电立即整改还一片蓝天”的警告。编程计算如输入一个
用户的月用电量,确定该用户会得到那条用电信息。
算法分析: (1)用电量计算:根据输入的用户月平均用电量w,乘以3而得到 季度用电量t。 (2)计算用电等级:计算方法:m=t/200。 (3)选择用电信息:根据不同等级,用switch语句给出不同用电 信息。
printf("个税缴纳金额:%.2f元\n ",Tax); printf("实发工资金额:%.2f元\n ",Salary1);

C语言程序设计第3章 选择结构流程和应用PPT课件

C语言程序设计第3章 选择结构流程和应用PPT课件
16
流程图
17
程序代码
#include “stdio.h” void main() { int iX,iY;
printf("please input a integer:"); scanf("%d",&iX); iY=iX; if (iX<0)
第3章 选择结构流程和应用
本章内容中我们将学习 1 选择结构判定条件的构成 2 单分支与双分支选择结构程序设计 3 多分支选择结构程序设计
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
2
1 选择结构判定条件的构成
表达式1 关系运算符 表达式2 该表达式执行时,先计算“表达式1”和 “表达式2”的值,然后进行比较,比较的 结果为真时关系表达式的值为1,否则为0。
5
试一试
问题3.1 关系运算符和关系表达式的用法演示。请观察程序运行结果。 【程序代码】 #include “stdio.h” void main() { int iX=3,iY=4,iZ=5;
表达式1 && 表达式2 或:
!表达式 或:
表达式1 || 表达式2 逻辑表达式执行时,先计算“表达式1”和“表达式2”或 “表达式”的值,然后进行逻辑运算,运算的结果为真 时逻辑表达式的值为1,否则为0。
10
试一试
问题3.2 逻辑运算符和逻辑表达式的用法演示。请观察程序运行结果。 【程序代码】 #include “stdio.h” void main() { int iX=3,iY=4;
11
问题3.3 逻辑运算符&&和||用法演示。请观察程序运行 结果。

《高级语言程序设计教学课件》第3章选择结构

《高级语言程序设计教学课件》第3章选择结构
在编写选择结构时,应注意减少冗余的判断和重 复的操作,以提高程序的运行效率。
THANKS
感谢观看Biblioteka 04选择结构的应用
在排序算法中的应用
冒泡排序
01
选择结构用于控制冒泡排序中的比较和交换操作,决定是否需
要交换相邻元素。
插入排序
02
选择结构用于确定插入位置,将元素插入到已排序序列的合适
位置。
选择排序
03
选择结构用于在未排序序列中找到最小(或最大)元素,并将
其放到已排序序列的末尾。
在查找算法中的应用
switch 语句
switch 语句的语法
switch (表达式) { case 常量表达式1: 语句块1; break; case 常量表达式2: 语句块2; break; ... default: 语句块; }
switch 语句的作用
根据表达式的值,选择执行相应的 case 分支的语句块,如果没有匹配的 case,则执行 default 分支的语 句块。
三目运算符
三目运算符的语法
条件表达式 ? 表达式1 : 表达式2
三目运算符的作用
根据条件表达式的值,选择执行表达式1或表达式2。如果条件为真,则执行表达式1; 否则执行表达式2。
03
循环控制语句
while 循环
条件判断在循环体执行前
while循环在执行循环体前,会先判断给定的条件是否满足。如果条件满足,则执行循环体,然后再次判断条件,直到条件不 再满足为止。
在编写选择结构时,应注意避免出现逻辑错误,如条件判断的顺序错误、 条件判断的遗漏等。
注意性能优化
对于大量数据的处理,可以选择使用更高效的 数据结构和算法,以减少不必要的循环和比较

03-选择结构-教学课件.docx

03-选择结构-教学课件.docx

+*第49、50课时第三章:选择结构424结构化程序设计的三种结构:顺序结构、分支结构、循环结构。

1、顺序结构:程序运行时,从前到后依次运行程序屮的每一条语句。

例题:1)从键盘输入两个整数,求它们的和、并、差、积、商、余。

main(){int a,b,he,ca,yu;longji;float shang;scanf(“%d%d",&a,&b);he=a+b;ca=a-b;ji=(long)a*b;shang=(float)a/b;yu=a%b;printf(n%d %d %ld %f %d\n*',he,ca,ji,shang,yu);单步运行的方法1、选择工具栏中的“VC6.0-用Turbo C 2.0打开当前程序”2、运行时,每按一次F7键,则运行一条语句(称单步运行)。

3、运行完后,用Alt+F5查看运行结果4、F10:调出主菜单。

2)从键盘输入五个成绩,计算它们的总分和平均分。

main(){int al,a2,a3,a4,a5,zf;float pj;scanf(n%d%d%d%d%d",&al,&a2,&a3,&a4,&a5);zf=al +a2+a3+a4+a5;pj=zf/5.();printf(H%d %f\n'\zf,pj);}3)从键盘输入长方形的长、宽,计算它的周长和面积。

main(){int a,b;float l,s;scanf(',%d%d,,,&a,&b);l=2*(a+b);s=a*b;printf(”%f%f”,l,s);}4)从键盘输入圆的半径,计算它的周长和面积。

(结果保留2位小数)#define PI 3.1415main(){int r;float l,s;scanf(”%d”,&r);l=2*PI*r;s=PI*r*r;printf(”%f%f”,l,s);}用define写的叫做常量,define前加#,后面不能有分号,常量最好用大写,以区别变量。

学习手册第3章 选择结构流程及应用

学习手册第3章 选择结构流程及应用

学习手册选择结构的应用教学内容选择结构的应用教学目标应知关系表达式与逻辑表达式if 语句及条件表达式switch语句应会关系表达式与逻辑表达式的计算在程序中正确使用if语句构成条件判断使用switch语句编写多分支选择程序难点if嵌套语句学习方法引探教学法,从简单的问题着手,逐步扩充功能,提升难度,引导学生拾级而上。

任务驱动教学法,给定题目,确定任务,帮助学生分析问题,指出解决问题的多种途径并引导学生实现之。

学习过程按照下面步骤编写程序实践体会使用if语句实现选择结构。

1.任意输入二个数,求最大值,并输出最大值。

(以此为例讲解if… else语句的用法及其执行过程)2.扩展第1步,任意输入三个数,求最小值并输出。

(引入介绍六种基本关系运算符并给出优先顺序,学习计算关系表达式的值,强调值为逻辑值(用0和1表示))3.扩展第2步,任意输入三个数,并按从小到大的顺序输出。

(注重讲解其中的算法,为循环语句打基础。

介绍三种逻辑运算符及其优先顺序,学习计算逻辑表达式的值。

)4.移植第3步,求解符号函数,强调else子句与if语句的匹配原则。

5.推进第4步,进行if语句的多重嵌套。

从键盘上输入成绩并按原则输出其等级为习题供学生练习。

按照下列步骤编写程序将成绩的百分制转换为等级制。

百分制与等级制的对应关系如下:90-100 对应A、80-89对应B、70-79对应C、60-69对应D、0-59对应E。

1.该程序有5种可以选择的分支(A、B、C、D、E),使用if嵌套语句实现。

2.由于采用if嵌套语句导致嵌套层次过多,程序可读性较差,因此拓展第1步,引入switch语句和break语句实现多分支选择结构。

3.使用switch-case语句将百分制转换为等级制时,由于分数有100种情况,而实际对应结果只有4个(A、B、C、D、E),因此,需要将百分制分数的范围缩小而又不影响对应关系。

可以将百分制分数整除10之后再进行转换将非常方便。

【精品】3判断与决策_选择程序设计(1)

【精品】3判断与决策_选择程序设计(1)
巧妙的使用这三种结构就可以解决复杂 的问题
问题
让成绩合格的学生通过
判断成绩是否合格
给定的一个整数是偶数吗?
奇偶判断
按成绩把学生分成两组:合格与不合格
判断成绩是大于等于60还是小于60
按成绩把学生分成多组
判断成绩落在那个范围
判断某年是否为闰年
返回
三种基本结构
顺序结构、选择结构、循环结构 已经证明,任何程序均可只用这三种结
重复—使用循环
当条件为真时,不仅输出信息,还要计 数
复合语句/语句块
#include<stdio.h> int main(void) { int grade; int nopassed = 0;
while( scanf("%d",&grade) != EOF) //循环
{
if ( grade < 60 )
if (grade >= 60)后面没有;号
也可以写成单行
if (grade >= 60) printf("good! you passed!\n");
再看几个例子: 例1 .比较两个整数的大小
输入样例1:2 3 输出样例1:
测试用例2:3 2 测试用例3:3 3
例2:判断整数是偶数吗?
期望条件为真时输出信息 条件为假时也输出信息
经过判断之后选择不同的分支进行处理, 得到不同的打印结果
算法设计
1 求和变量aNum,bNum初始化为0; 2 输入学生成绩; 3 如果输入结束,执行(8); 4 如果成绩大于或等于60,输出分到A 组的信
息,aNum加1, 5 执行(2); 6 如果成绩小于60,输出分到B组信息,bNum

第三章Matlab的选择结构

第三章Matlab的选择结构

第三章Matlab的选择结构第三章 Matlab的选择结构3.1 程序编写的⼀般步骤3.2 关系运算符 1) 0表⽰假,⾮0表⽰真; 2) ~=:不等于; 3) sin(pi) ~= 0:为1,⽐较a、b两个数是否相等⽅法:abs(a - b)<1.0e-143.3 逻辑运算 1) 先与&后或|3.4 逻辑函数与短路运算 1) 短路运算:&&、||;⾮短路运算:&、| 2) ischar(x)、isempty(x)、isinf(x)、isnan(x):是否不是数、isnumeric(x):是否是数 3) 1/0 = Inf 是数;0/0 = NaN 不是数3.5 if语句1) 语句结构:”if"开始,"end"结束if exp_1 block_1elseif exp_2 block_2... ...else block_nend3.6 流程图的绘制3.7 if语句的嵌套3.8 switch1)switch(value) case{1,3,5,7,9}, block_1; case{2,4,6,8}, block_2; ... ... otherwise, block_nend3.9 try_catch结构try block_1catch block_2end3.10 多个图像窗⼝与⼦窗⼝ 1) figure(n):图像窗⼝命令; 2) subplot(m,n,p):图像窗⼝中有m*n个⼦窗⼝,p是当前操作窗⼝;3.11 图像的增强控制 1) plot(x1,y1,LineSpec,...,xn,yn,LineSpec) 2) plot(x1,y1,LineSpec,'PropertyName',PropertyValue) 3) LineWidth:⽤来指定线的宽度 4) MarkerEdgeColor:⽤来指定标识表⾯的颜⾊ 5) MarkerFaceColor:填充标识的颜⾊ 6) MarkerSize:指定标识的⼤⼩例:x = -pi:pi/10:pi;y = tan(sin(x)) - sin(tan(x));plot(x,y,'--rs','LineWidth',3,...‘MarkerEdgeColor','k',...‘MarkerFaceColor','g',...‘MarkerSize',10)3.12 ⽂本的⾼级控制...。

第3章顺序和选择结构程序设计

第3章顺序和选择结构程序设计
scanf(″输入控制″,输入数据表列) “输入控制”的含义与printf()函数的“输出控制”相
同,输入数据表列是一个或多个用逗号分隔的变量的地址 或字符串的首地址。
变量的地址可以通过地址运算符“&”得到。r的地址就是 &r。
2008-9-26
程序设计基础(C语言)wh
9
eg编写求圆面积的通用程序。
int x;
scanf(“%d”,&x);
printf(“|%d|=”,x);
if (x<0)
x=-x;
printf(“%d\n”,x);
输出x的值 结束
}
-12 |-12|=12
2008-9-26
程序设计基础(C语言)wh
32
eg 从键盘输入圆的半径,若半径小于等于0, 则不进行计算;否则,计算圆面积。
行两条或多条路径中的一条。 ➢ 循环结构是在给定条件成立的情况下反复执行某个程序段,
该程序段称为”循环体”。 实现上述各种程序流程的语句称为流程控制语句.
2008-9-26
程序设计基础(C语言)wh
19
①if()~else~ ②for()~ ③while()~ ④do~while() ⑤continue ⑥break ⑦switch ⑧goto ⑨return
printf(”hello!”); scanf(”%d”,&x); v = volume(3, 4, 5);
2008-9-26
程序设计基础(C语言)wh
17
2.复合语句
将多个相关联的简单语句用一对大括号括
起来就构成了复合语句,在程序中当作一个语 句看待。其一般格式为:
{ a=1.0; b=2.0; i++;

第3章顺序和选择结构程序设计

第3章顺序和选择结构程序设计
printf("Area=%f\n",3.14159*r*r); if(r==20)
printf("Cycle=%f\n",2.0*3数,按由大到小的顺序输出这两个数。
#include <stdio.h> voi分时d 析,m这:a两输in个入()实两数个的实大数 { 小顺序是任意的。
实现方法: 为了能够进行相互交换,必须引进一个临时变量t。 用以下三个赋值语句可实现交换。 t=a; a=b;b=t; /*t=a,a=b,b=t;*/
3.3 C语句
1.表达式语句
任何一个表达式加上一个分号就可以组成一条
语句。
例如:
表达式
表达式语句
a=b+c*(d+3)
a=b+c*(d+3);
a+b+c
a+b+c;
i++
i++;
函数调用也是表达式,在其后加一个分 号,就变成了函数调用语句。 eg:printf函数调用语句和scanf函数调用 语句
入口
真(非0)
表达式为真吗?
真(非0) 执行语句
假(0)
执行语句
例:从键盘输入圆的半径,若半径小于等于0,则不 进行计算;否则,计算圆面积。
#include <stdio.h> void main( ) {
float r; printf(“Input the radius:”); scanf(“%f”,&r); if(r>0)
小结: 在表达式之后加一个分号,从而构成
一个语句,这是C语言的一个特色。它使 C语言的程序设计的表达能力更强。

演示文稿第3章 选择结构流程及应用

演示文稿第3章 选择结构流程及应用

选择结构判定条件的构成

在C 语言中,一般用关系表达式和逻辑 表达式构成判定条件。
表达闰年的条件



按照历法的规定,某一年要成为闰年 ,则应符合以下两个条件之一: (1)能被4整除,但不能被100整除 ; (2)能被400整除。 设year表示年份,用C语言的逻辑表 达式来表达润年的逻辑表达式即为: ((year % 4 == O) && (year % 100 != O)) || (year % 400 == O)
再试一试
问题3.8编一程序将成绩的百分制转换 为等级制。百分制与等级制的对应关系 如下:90-100 对应A、80-89对应B、 70-79对应C、60-69对应D、0-59对应E 。 【解题步骤】 1.定义float变量fScore用来存放成绩值 ; 2.从键盘输入一个成绩值放变量fScore

流程图
#include <stdio.h> void main(){ int iX,iY; printf("please input a integer:"); scanf("%d",&iX); iY=iX; if (iX<0) iY=-iX; printf("\n|%d|=%d",iX,iY); getch(); } 运行结果为: please input a integer:-12 ↙(回车) |-12|=12
switch语句流程图
表达式
常量表达式1 其它
常量表达式2
...
常量表达式n
语句序列1
语句序列2
语句序列 n
语句序列n+1
试一试
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

条件运算符与条件表达式
学一学 C语言中有一种特有的运算符称为条件运算符, 即“?:”。它在某种程度上可以起到逻辑 判断的作用,一样可以实现双分支选择结构。 由条件运算符构成的表达式称为条件表达式, 与if-else语句具有相同的功能。其一般形式为: 表达式1 ?表达式2 :表达式3 运算规则为:如果“表达式1”的值为真, 则 条件表达式的运算结果等于“表达式2”的值, 否则,运算结果等于“表达式3”的值。
条件
Y
N
语句
试一试

问题3.4 从键盘输入 一个数,输出其绝对 值。
调试问题3.4程序, 观察运行结果
练一练
问题:小明去参加一个同学的生日聚会, 同学的家长规定18岁以上的才可以饮酒, 所以需要编一程序根据输入的年龄打印 一张饮酒卷,使的能饮酒的同学可以获 取饮酒卷。

if-else语句
学一学 if-else语句是标准的if语句。 用来实现双分支选择结构, 其一般形式为: if ( 条件 ) 语句1; else 语句2;

问题3.9 编一程序可 查询驾驶证可以驾驶 的车辆类型。要求从 键盘输入驾照的类型。 比如输入驾照类型 ‘C’,输出“你可以驾 驶小轿车”。其中, A牌驾照可驾驶大客 车、人货车和小轿车, B牌驾照可驾驶人货 车和小轿车,C牌驾 照可驾驶小轿车,D 牌驾照可驾驶摩托车。 调试问题3.9程序,观察运行结果

小结



1.嵌套if-else语句和switch语句都是用来实现多分支 选择结构的,它们的应用环境不同,嵌套if-else 语句 用于对多条件并列测试,从中取一的情形;switch语 句用于单条件测试,从其多种结果中取一种的情形。 2.一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反之用嵌套if-else 语句能解决的问题 用switch也能解决,在使用时要根据具体问题灵活运 用。 3.如果多分支选择结构中需要判断的逻辑关系只是 是否相等,则最好用switch语句。switch语句的执行 效率高于嵌套if-else语句。
3 多分支选择结构程序设计

嵌套if-else语句 switch语句
嵌套if-else语句

学一学 所谓嵌套就是在if-else语句的if或else子句中又包含了一个或多 个if-else语句。其目的是解决多分支选择问题,其一般形式为: if ( 条件1 ) 语句1; else if ( 条件2 ) 语句2; else if ( 条件3 ) 语句3; ┇ else if(条件n-1)语句n-1; else 语句n; 这是由双路选择语句所构成的多路选择结构。此处的“语句1”、 “语句2”…“语句n”可以是简单语句,也可以是用一对大括号 “{ }”括起来的复合语句。语句流程图如图3-6所示。
再试一试

问题3.10 用 switch语句解 决问题3.8, 将成绩的百分 制转换为等级 制。
调试问题3.10 程序,观察运 行结果
练一练
问题:将星期一、星期二…星期六、星 期日依次编号为1、2…6、7,编一程序 从键盘输入星期的序号,可输出其对应 的英文。比如,输入6,可输 出”Saturday”。
第 3章 选择结构流程和应用
学习目标
1 了解选择结构判定条件的构成 2 掌握单分支与双分支选择结构程序设计 3 掌握多分支选择结构程序设计
1 选择结构判定条件的构成

关系运算符与关系表达式 逻辑运算符与逻辑表达式
关系运算符
关系运算是对两个操作数之间进行比较的运算符, 其运算结果为逻辑值(或称“布尔”值,boolean) “真”或“假”。 C语言中提供六种关系运算符, 如表3-1所示。
流程图
试一试
问题3.7 从键盘 输入一个自变 量x,求分段函 数y=f(x)的值, f(x)的表达 式如下:
调试问题 3.7程序, 观察运行结 果
再试一试

问题3.8编一程序将成绩的 百分制转换为等级制。百分 制与等级制的对应关系如下: 90-100 对应A、80-89对应 B、70-79对应C、60-69对 应D、0-59对应E。
逻辑表达式
关系表达式只能描述单一的条件,而当选择判定的 条件有多个时,就要借助于逻辑表达式。用逻辑运算 符连接起来的式子称为逻辑表达式。一般形式为: 表达式1 && 表达式2 或: !表达式 或: 表达式1 || 表达式2 逻辑表达式执行时,先计算“表达式1”和“表达式2” 或“表达式”的值,然后进行逻辑运算,运算的结果 为真时逻辑表达式的值为1,否则为0。
流程图如图3-3所示,若“条件”为 “真”,则执行“语句1”;否则执行 “语句2”。 此处的“语句1”和“语句2”可以是简单 语句,也可以是用一对大括号“{ }”括 起来的复合语试一试
问题3.5 编一程序 控制电灯开关。从 键盘输入1表示开灯, 这时显示“the light is On”,输入0 或其它数表示关灯, 显示“the light is off” 。 调试问题
试一试
问题3.2 逻辑运算符和逻辑表达式的用法演示。请观察程序运行 结果。 【程序代码】
调试问题3.2程序,观察运行结果
再试一试

问题3.3 逻辑运算符&&和||用法演示。请观察程序 运行结果。
调试问题3.3程序,观察运行结果
小结
1. 不要把关系运算符“==”误用为赋值运算符“=”。比如,如果将判断 iX是否等于8的关系表达式“iX == 8”写成“iX = 8”,那么它永远为 “真”(不管iX原来的值是多少)。 2.正确书写关系表达式。如果表示“iX大于等于5,且iX小于等于20”,在 数学中可写为式子:5 ≤iX ≤ 20,而在C程序中,如果写成下面的表达 式: 5 <= iX <= 20 则是错误的。但这种错误是一种语义上的错误,而不是语法上的错误, 编译器查不出来,编译时不会报告错误,但运行时,不论iX为何值 (比如为3或60)表达式的值都是“真”,所以这种错误比较“隐蔽”, 不易被发现,希望引起注意。正确的写法应该是: 5 <= iX &&iX <= 20 3.算术运算符、关系运算符、逻辑运算符、赋值运算符在一起进行混合 运算时,各类运算符的优先级如下所示(自左至右,从高到低): !(非) —> 算术运算 —> 关系运算 —> && —> || —> 赋值运算

调试问题 3.8程序, 观察运行结 果
练一练


问题 1.根据图3-8给出的流程图编写程序,对比 问题3.7中的程序代码。 2.编一程序可查询驾驶证可以驾驶的车辆类 型的。要求从键盘输入驾照的类型可以输出 相应的准驾车型。比如输入驾照类型‘C’,输 出准驾车型:小轿车。其中,A牌驾照可驾驶 大客车、人货车和小轿车,B牌驾照可驾驶人 货车和小轿车,C牌驾照可驾驶小轿车,D 牌 驾照可驾驶摩托车。
switch语句
学一学 switch 语句是C语言中又一种实现多分支选择结构的 语句,其一般形式是: switch (表达式) { case 常量表达式1:语句序列1 case 常量表达式2:语句序列2 …… case 常量表达式n:语句序列n default:语句序列n+1 }

流程图
试一试
试一试
问题3.6 : 编一程序从键 盘输入两个 整数,输出 较大的一个。
调试问题3.6 程序,观察运 行结果
练一练
问题: 1.请用if-else语句实现问题3-6的双分支 选择结构。 2.用条件表达式实现问题3-5的双分支选 择结构。
小结
1.if和else同属于一个if语句,else不能作为语句单独使用,它只是if语句的一 部分,与if配对使用。因此程序中不可以没有if而只有else。 2.if-else 语句在执行时,只能执行与if有关的语句或者执行与else有关的语句, 而不可能同时执行两者。 3.if语句的表达式可以是任意类型的C语言的合法的表达式,除常见的关系表 达式或逻辑表达式外,也允许是其它类型的数据,如整型、实型、字符型 等。 4.在if 和else的后面,可以是单条语句,也可以复合语句。单条语句时,注 意别忘记写分号“;”,复合语句时要注意“{}”的后面不能加“;”。 5.条件运算符的其结合性为“从右到左”(即右结合性)。比如 表达式iA>iB?iA:iC>iD?iC:iD相当于iA>iB?iA:(iC>iD?iC:iD),如果 iA=1,iB=2,iC=3,iD=4,则上述条件表达式的值等于4。 6.条件表达式一般形式(表达式1 ?表达式2 :表达式3)中的“表达式1”、 “表达式2”、“表达式3”的类型,可以各不相同。“表达式2”和“表达式 3”不仅可以是数值表达式,也可以是赋值表达式或函数表达式。比如 iX>iY?printf(“%d”,iX):printf(“%d”,iY) 如果iX=3,iY=4,则条件表达式执行结果为输出iY的值。
3.5程序, 观察运行结 果
练一练
问题:编一程序,从键盘输入一个整数, 判断它的奇偶性。如果输入的是奇数, 输出“ODD”,如果输入的是偶数,则 输出“EVEN”。 提示:一个数若能被2整除,则该数是 偶数,若这个数不能被2整除,则该数 为奇数。判断一个数能否被另一个数整 除可用求余运算,比如5%3=1,说明5 不能整除3,6%3=0,说明6可以整除3。
2 单分支和双分支选择结构程序 设计


简单if语句 if-else语句 条件运算符与条件表达式
简单if语句
学一学 简单if语句的形式为: if ( 条件表达式 ) 语句
其流程图如图3-1所示。语句的执 行过程是先计算“条件表达式”, 若值为“真”,则执行“语句”; 否则什么也不做。此处的“语句” 可以是简单语句,也可以是用一对 大括号“{ }”括起来的复合语句。
相关文档
最新文档