第04章 选择结构程序设计
第四篇选择结构程序设计

以某表达式的值等于0作为条件时可写成对该表达式 取反的形式。
例如,语句:if(x==0) printf(“x=0”);可以简写成:
if(!x) printf(“x=0”);
4.3 if语句
说明: (3)无论是if语句中的语句还是if-else语句中的语
句1、语句2,都可以是任何语句。当它们中的某 一个是有多条语句组成时,必须写成复合语句的 形式。例如,语句:
优先级: 高 算术运算符
< ,<=, >, >=
低
==, !=
赋值运算符
4.2 关系运算与逻辑运算
2.关系表达式
一般形式为:〈表达式〉〈关系运算符〉〈表达式〉
合法的关系表达式:
a>b
a+b<c-d
(a=3)<=(b=5)
‘a’>=‘b’
(a>b)==(b>c)
关系表达式的值:
——逻辑值
“真” “1”表示
else
printf(“n=%d NO\n”,n); }
➢多分支if语句
4.3 if语句
当if-else语句中的语句2是另一条if语句时,就构成了多分支if语句。
语句的一般形式为: 表 达 式
1
if(表达式1) 语句1 真
假 执行过程:
假 表达式2
else if(表达式2) 语句2
真
假
else if(表达式3) 语句3
用N-S流程图表示例4.1的算法 输入weight
成立
weight≤50
不成立
pay=weight*0.35
pay=50*0.35+(weight50)*0.5
实验四选择结构程序设计

实验四选择结构程序设计在程序设计的世界里,选择结构就像是一个智能的决策者,根据不同的条件来决定程序的走向。
这一结构在解决各种实际问题中发挥着至关重要的作用,让程序变得更加灵活和高效。
选择结构,简单来说,就是让程序在运行时能够根据某些条件的判断结果,选择执行不同的代码块。
想象一下,你正在编写一个程序,要根据用户输入的成绩来判断他是否及格。
如果成绩大于等于 60 分,就输出“及格”;否则,输出“不及格”。
这就是一个典型的选择结构应用场景。
在大多数编程语言中,实现选择结构主要有两种方式:if 语句和switch 语句。
先来说说 if 语句。
它的基本形式是“if (条件) {代码块}”。
如果条件为真,就执行花括号里的代码块;如果条件为假,就跳过这个代码块,继续执行后面的代码。
比如说,我们要判断一个数是否为正数,可以这样写:```javaint num = 5;if (num > 0) {Systemoutprintln("这是一个正数");}```除了简单的 if 语句,还有 ifelse 语句。
它的形式是“if (条件) {代码块 1 } else {代码块 2 }”。
如果条件为真,执行代码块 1;如果条件为假,执行代码块 2。
例如,判断一个数是奇数还是偶数:```javaint num = 6;if (num % 2 == 0) {Systemoutprintln("这是一个偶数");} else {Systemoutprintln("这是一个奇数");}```另外,还有 ifelse ifelse 语句,可以处理多个条件的情况。
比如,根据学生的成绩划分等级:```javaint score = 85;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}```接下来,再讲讲 switch 语句。
d04_选择结构程序设计24页PPT

第四章 选择结构程序设计
退出
第四章 选择结构程序设计
退出
第四章 选择结构程序设计
退出
求任意数据的平方根
算法设计 (1) 定义实型变量x和y (2) 从键盘输入变量x的值 (3) 如果变量x的值大于等于0
①求变量x的平方根并赋值给变量y ②输出变量y的值
第四章 选择结构程序设计
退出
求任意数据的平方根prg4-1.c
if(x > 0 ) //调用{ 数学库函数sqrt求平方根,包含头文件
void m{
printf("x的平方根是:%10.2lf\n", y);
dproiunbtlfe("x从, 键y;盘输入变量x的/值/定:义"}e)变l;se量x和yprintf("x的平方根是:0\n");
d04_选择结构程序设计
41、俯仰终宇宙,不乐复何如。 42、夏日长抱饥,寒夜无被眠。 43、不戚戚于贫贱,不汲汲于富贵。 44、欲言无予和,挥杯劝孤影。 45、盛年不重来,一日难再晨。及时 当勉励 ,岁月 不待人 。
关系运算符与关系表达式 逻辑运算符与逻辑表达式 if语句 switch语句 结构嵌套程序举例
printf("x的平方根是:%10.2lf\n", y); //输出变量y的值
}
else
//处理不合法的数据
printf("输入的数据有错误\n");
}
第四章 选择结构程序设计
退出
多分支if语句
语法格式
if(表达式1)
语句1;
else if(表达式2) 语句2;
else if(表达式3) 语句3;
if(表达式) 语句1;
选择结构程序设计

选择结构程序设计1-引言本文档旨在介绍选择结构程序设计的相关内容。
选择结构是编程中的基本概念之一,它用于根据条件的真假来选择性地执行不同的代码块。
本文档将详细讨论选择结构的概念、基本语法和示例。
2-选择结构概述在程序设计中,选择结构用于在特定条件下执行不同的操作。
通过判断条件的真假,程序可以决定执行哪个代码块。
选择结构的基本形式有 if 语句、if-else 语句、if-else if-else 语句和switch 语句。
3-if 语句if 语句是选择结构中最简单的形式。
它只有一个条件和一个代码块。
如果条件为真,代码块将会被执行。
示例代码:```if (条件) {// 执行代码块}4-if-else 语句if-else 语句用于在条件为真和为假时分别执行不同的代码块。
如果条件为真,执行第一个代码块。
如果条件为假,执行第二个代码块。
示例代码:```if (条件) {// 执行代码块1} else {// 执行代码块2}```5-if-else if-else 语句if-else if-else 语句允许在多个条件下执行不同的代码块。
条件按顺序进行判断,只有第一个为真的条件对应的代码块会被执行。
示例代码:if (条件1) {// 执行代码块1} else if (条件2) {// 执行代码块2} else {// 执行代码块3}```6-switch 语句switch 语句用于根据不同的取值执行相应的代码块。
它将一个表达式的值与多个 case 常量进行比较,匹配的 case 对应的代码块将被执行。
示例代码:```switch (表达式) {case 常量1:// 执行代码块1break。
case 常量2:// 执行代码块2break。
default:// 执行默认代码块}```7-附件本文档涉及附件包括示例代码和进一步阅读的参考资料。
8-法律名词及注释本文档所涉及的法律名词及注释如下:●条件:在选择结构中用于判断的逻辑条件。
04 选择结构程序设计

程序输出举例: Enter two numbers: 2 2 (用户从键盘输入2 2)
num1=2 num2=2 result=1
4.2 逻辑运算符及逻辑表达式
逻辑运算符用于支持基本逻辑运算。三 种逻辑运算符及其意义,如表4.2.1所示。
表4.2.1
逻辑运算符 !
&& ||
名称 逻辑非 逻辑与 逻辑或
下面给出程序清单:
#include <stdio.h> main() { int value,choice;
printf("Convert : \n");
/*输出菜单*/
printf(" 1: decimal to hexadecimal\n");
printf(" 2: hexadecimal to decimal\n");
printf("Enter a decimal value: "); scanf("%d", &value); printf("%d in hexadecimal is %x\n", value,value); } else if(choice==2) { printf("Enter a hexadecimal value: "); scanf("%x", &value); printf("%x in decimal is %d\n",
例4.3.3 用双分支if语句重新编写例4.3.1的 程序。
可以利用一个分支处理变量a为正数的情 况,如令x=a。用另一个分支初处理变量a为 负数的情况,如令x=−a。最后输出结果。下 面给出程序:
选择结构程序设计

选择结构程序设计在计算机编程的世界里,选择结构程序设计就像是为程序赋予了思考和决策的能力。
它使程序能够根据不同的条件做出不同的反应,从而实现更加灵活和智能的功能。
想象一下,你正在编写一个程序,要根据用户输入的成绩来判断他是否及格。
如果没有选择结构,程序可能就会变得非常僵化,无法根据不同的成绩情况做出相应的处理。
而有了选择结构,程序就能轻松地应对各种可能的情况。
选择结构最常见的形式就是“ifelse”语句。
它的基本思想很简单:如果某个条件成立,就执行一段特定的代码;如果条件不成立,就执行另外一段代码。
比如说,“if (成绩>= 60){输出‘及格’;} else {输出‘不及格’;}”,这就是一个非常典型的“ifelse”结构的应用。
通过这样的语句,程序能够根据成绩的不同做出准确的判断和相应的输出。
除了简单的“ifelse”,还有一种更复杂但也更强大的选择结构叫做“ifelse ifelse”。
这种结构适用于需要判断多个条件的情况。
假设我们不仅要判断成绩是否及格,还要区分优秀(90 分及以上)、良好(80 89 分)、中等(70 79 分)等不同的等级,就可以使用“ifelse ifelse”结构。
例如:“if (成绩>= 90){输出‘优秀’;} else if (成绩>= 80&&成绩< 90){输出‘良好’;} else if (成绩>= 70 &&成绩< 80){输出‘中等’;} else if (成绩>= 60 &&成绩< 70){输出‘及格’;} else {输出‘不及格’;}” 这样,程序就能更细致地对成绩进行分类和处理。
在实际编程中,选择结构的应用场景非常广泛。
比如在一个购物网站中,程序需要根据用户的会员等级来决定给予不同的折扣。
如果是普通会员,可能没有折扣;如果是银牌会员,享受 5%的折扣;如果是金牌会员,享受 10%的折扣。
通过选择结构,程序能够准确地根据用户的会员等级计算出相应的折扣金额。
选择结构程序设计

选择结构程序设计选择结构程序设计在程序设计中,选择结构是一种非常重要的控制结构。
通过选择结构,我们可以根据程序的运行情况来决定执行不同的代码块。
选择结构能够实现条件判断和分支选择,为程序的灵活性和可扩展性提供了极大的便利。
本文将介绍选择结构的概念、语法和几种常用的选择结构程序设计方法。
选择结构的概念选择结构是指程序根据不同的条件执行不同的代码块。
在选择结构中,通常会使用条件判断来确定程序执行的路径。
根据条件表达式的返回值(真或假),程序会决定执行真值分支(True branch)或者假值分支(False branch)。
选择结构的出现可以使程序更具有灵活性和可扩展性。
选择结构的语法在大多数编程语言中,选择结构通常有两种形式:`if`语句和`switch`语句。
if语句`if`语句是最基本的选择结构语句。
它可以根据某个条件的真假来执行不同的代码块。
`if`语句的语法如下:```markdownif (condition) {// 如果条件为真,执行这里的代码块} else {// 如果条件为假,执行这里的代码块}```其中`condition`是一个条件表达式,它能够返回一个布尔值(真或假)。
如果`condition`为真,程序会执行`if`后面的代码块;如果`condition`为假,程序会执行`else`后面的代码块。
switch语句`switch`语句是另一种常用的选择结构语句。
它可以根据一个表达式的值,选择性地执行多个代码块中的一个。
`switch`语句的语法如下:```markdownswitch (expression) {case value1:// 如果`expression`的值等于`value1`,执行这里的代码块break;case value2:// 如果`expression`的值等于`value2`,执行这里的代码块break;default:// 如果`expression`的值不等于任何一个`case`中的值,执行这里的代码块break;}````expression`是一个表达式,它的值和`case`后面的值进行比较。
选择结构程序设计

4.1 选择结构 4. 1 If…Then语句(单分支结构)
If <表达式> Then 语句块 End If 或 If <表达式> Then <语句> 例:已知两个数x和y,比较它们的 大小,使得x大于y。 If x<y Then t=x : x=y: y=t End If 或 If x<y Then t=x: x=y: y=t
图 1-3-8 过程 两个数交换
x
y
t
4.2 If…Then…Else语句(双分支结构) If <表达式> Then <语句块1> Else <语句块2> End If
双分支选择结构执行过程
If <表达式> Then <语句1> Else <语句2>
例如:输出x,y两个中值较大的一个值。 IF X>Y Then Print X Else Print Y End If 也可以写成如下的单行形式: IF X>Y Then Print X Else
注意:
对于多层IF嵌套结构中,要特别注意IF与Else的配 对关系,一个Else必须与IF配结,配对的原则是:在写 含有多层嵌套的程序时,建议使用缩进对齐方式,这样
容易阅读和维护。
4.4 选择结构的嵌套 在IF语句的Then分支和Else分支中可以完整地嵌套另 一IF语句或Select Case语句,同样Select Case语句每一个 Case分支中都可嵌套另一IF语句或另一Select Case语句。 下面是两种正确的嵌套形式:
(1)IF <条件1> Then ….. if <条件2> Then …… Else ….. End If …. Else …. IF <条件3> Then ….. Else ….. End If ….. End IF (2)IF <条件1> Then ….. Select Case … Case …… IF <条件1> Then …… Else ….. End If …… Case…. ….. End Select …. End IF
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.最基本的if语句
4.2 输入正方形的边长,求正方形的周长。 #include<stdio.h> 运行结果: void main( ) 请输入正方形的边长:5↙ { 正方形的周长是:20.000000 float x; printf("请输入正方形的边长:"); scanf("%f",&x); if (x>0) { x=x*4; printf("正方形的周长是:%f\n",x); } }
4.条件运算符
条件运算符要求有3个操作对象,称三目(元)运算符,它是 C语言中唯一的一个三目运算符。条件表达式的一般形式为 表达式1?表达式2:表达式3 说明: (1)条件运算符的执行顺序:先求解表达式1,若为非0(真) 则求解表达式2,此时表达式2的值就作为整个表达式的值。若 表达式1的值为0(假),则求解表达式3,表达式3的值就是整 个表达式的值。 (2)条件运算符优先于赋值运算符,比关系运算符和算术运 算符都低。 (3)条件运算符的结合方向为“自右至左”。 如:a>b?a:c>d?c:d 相当于 a>b?a:(c>d?c:d)
例4.1 关系表达式运算结果的演示。
#include<stdio.h> void main( ) { int a,b,c,d,f; a=3; b=2; c=1; d=a>b; f=a>b>c; printf("22>10的值是:%d\n",22>10); printf("a<A的值是:%d\n",'a'<'A'); printf("11<=7的值是:%d\n",11<=7); printf("d的值是:%d\n",d); printf("f的值是:%d\n",f); }
3. 多分支选择
格式1: if (表达式1) if(表达式2) 语句1 else 语句2 else if(表达式2) 语句3 else 语句4
例4.4:已知高斯平面上的点(x,y),判断该点落在哪个象 运行结果: 限。
请输入点的平面坐标:-100,100↙ #include<stdio.h> 点在第二象限 void main() { double x,y; printf("请输入点的平面坐标:"); scanf("%lf,%lf",&x,&y); if (x>0) if(y>0) printf("点在第一象限\n"); else printf("点在第四象限\n"); else if(y>0) printf("点在第二象限\n"); else printf("点在第三象限\n"); }
在程序中,用选择结构来检查所指定的条件是否满足,并根 据判断的结果决定执行哪种操作(从给定的两组操作中选择 其一)。 如: If (x>0) printf(“%d”,x); else printf(“%d”,-x);
4.1.2 关系运算符和关系表达式
1.关系运算符及其优先次序
关系运算符 含义
> >=
说明:由于用了1和0代表真和假,而1和0又都是数值, 所以在 C 程序中还允许把关系运算的结果(即1和0) 看做和其它数值型数据一样,可以参加数值运算或把 它赋值给数值型变量。
4.1.3 逻辑运算符和逻辑表达式
有时候需要判断的条件不是一个简单的条件,而是 一个复合的条件,如: 是中国公民,且在18岁以上才有选举权。这就要求 同时满足两个条件:中国公民;大于18岁。 5门课都及格,才能升级。这就要求同时满足5个条 件。 70岁以上的老人或10岁以下的儿童,入公园免票。 这就要求对入园者检查两个条件,看是否满足其一。
2.逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的式 子就是逻辑表达式。逻辑表达式的结果是逻辑值。 C语言编译系统在表示逻辑运算结果时,以数值1代 表“真”,以0代表“假”,但在判断一个量是否为 “真”时,以0代表“假”,以非0代表“真”。即 将一个非零的数值认作为“真”。 例如: (1)若a=4,则!a的值为0 (2)若a=4,b=5,则a&&b的值为1 (3)若a=4,b=5,则a||b的值为1 (4)4&&0||2的值为1
2.if else语句
if else语句的一般形式: if (表达式) 语句1; else 语句2;
2.if else语句
例如:
if (x>y) max=x; else max=y; 说明: (1)if语句和else语句属于同一个if语句。else子句不能作为语 句单独使用,它必须是if语句的一部分,与if配对使用。 (2)当语句1和语句2为单条语句时,必须用分号作为结束符, 这是由于分号是C语句中不可缺少的部分,这个分号是if语句中 的内嵌语句所要求的。如果无此分号,则出现语法错误。 (3)在if和else后面可以只含一个内嵌的操作语句(如上例),也 可以有多个操作语句,此时用花括号“{}”将几个语句括起来成 为一个复合语句。
a&&b 真 假 假 假
a||b 真 真 真 假
1.逻辑运算符及其优先次序
说明: (1)三者的优先级由高到低为: !(非)→&&(与) → ||(或) (2)多种运算符同时出现时,优先级由低到高为赋值 运算符→||(或)→&&(与)→关系运算符→算术运 算符→!(非)。如:(12+3<30)&&(a==b) 也可以写成 :12+3<30&&a==b。 (3)“!”是“单目运算”,即只要求有一个运算对象 (操作数),而“&&”和“||”是双目运算符,它们要 求有两个运算对象。
如果你在家,我去拜访你; (需要判断你是否在家) 如果考试不及格,要补考; (需要判断是否及格) 如果遇到红灯,要停车等待;(需要判断是否红灯)
如果a>b,输出a
(需要判断a是否大于b)
4.1.1 条件判断的含义
条件判断的结果是一个逻辑值:“是”或“否”, 在计算机语言中用“真”和“假”来表示“是”和 “否”。如果,判断 “a>b” 条件是否满足。当a>b 时,就称条件“a>b” 为 “真” ,如果a≤b,则不满 足“a>b”条件,就称此时条件“a>b”为假。
2.if else语句
例4.3 完善例4.2。输入正方形的边长,求正方形的周长。
#include<stdio.h> 运行结果: void main() 请输入正方形的边长:5↙ { float x; 正方形的周长是:20.000000 printf("请输入正方形的边长:"); 请输入正方形的边长:-8↙ scanf(“%f”,&x); 数据输入错误! if(x>0) { x=x*4; printf("正方形的周长是:%f\n",x); } else printf("数据输入错误!\n"); }
4.2 用if语句实现选择结构
1.最基本的if语句
If语句的一般形式: if (表达式) 语句
例如: if (x>y) printf("%d",x);
真 语句
表达 式
假
1.最基本的if语句
说明: (1)if后面的括号中的“表达式”指定判断条 件,可以是关系表达式(x>y)、逻辑表达 式( x && y )。注意表达式必须用圆括号 括起来。 (2)如果语句由一条以上语句组成,必须 用花括号把这一组语句括起来构成复合语 句。
4.条件运算符
(4)条件表达式不能代替一般的if 语句,只有在if语句中内嵌 的语句为赋值语句(且两个分支都给同一变量赋值)时才能代 替if语句。 (5)条件表达式中,表达式1的类型可以与表达式2和表达式3 的类型不同。
1.逻辑运算符及其优先次序
C语言提供了三种逻辑运算符: (1)&& :逻辑“与”(相当于其他语言中的AN D) (2)|| :逻辑“或” (相当于其他语言中的OR) (3)! :逻辑“非” (相当于其他语言中的NOT)
逻辑运算的真值表
a 真 真 假 假
b 真 假 真 假
!a 假 假 真 真
!b 假 真 假 真
2. 关系表达式
关系表达式是用关系运算符将两个比较的对象连接起来的 式子。这里比较的对象可以是最简单的常数、变量,还可 以是一个表达式(算术表达式、关系表达式、逻辑表达式 、赋值表达式或字符表达式)。 如:a+b>b+c 对象为算术表达式 (a=3)>(b=5) 对象为赋值表达式 ‟a‟<„z‟ 对象为字符表达式 (a>b)>(b<c) 对象为关系表达式 表达式的结果是逻辑值“真”或“假”,C 语言中没有逻 辑型数据,而用数值“1”和“0”分别代表“真”和“假” 。例如:关系表达式“2==3”的结果为“假”,即表达式的 值为0。又如:表达式“’a‟<‟b‟” 的结果为“真”,即表 达式的值为1。
4.条件运算符
若 if 语句中,在表达式为“真”和“假”时,且都只执行一个 赋值语句给同一个变量赋值时,可以用简单的条件运算符 来处理。 例如,若有以下if语句: if(a>b) max=a; else max=b; 可以用下面的条件运算符来处理: max = (a>b)?a:b 其中“ (a>b)?a:b”是一个“条件表达式”
3. 多分支选择
格式2: if(表达式1) 语句1 else if(表达式2) 语句2 ┆ else if(表达式n) 语句n else 语句n+1