c语言选择结构选最小值,C语言 选择结构

本文详细介绍了编程中的选择结构,包括单分支选择(if)、双分支选择(if-else)和多分支选择(if-else if-else)。通过实例展示了如何使用这些结构来计算两个整数的最大值,并提到了条件运算符在简化代码中的作用。同时,文章还探讨了switch语句的使用及其执行规律,并提及了break和continue语句在控制流程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.选择结构

1. 单分支选择结构

2. 双分支选择结构

3. 多分支选择结构

1. 单分支选择结构

1.1何为单分支选择结构?

从开始到结束之间只有一条路可供选择。

1.2何为双分支结构?

从开始到结束之间有两条路可供选择。

1.3何为多分支结构?

从开始到结束之间有三条及三条以上的路可供选择。

**接招看题004.**用单分支选择结构的条件语句编程,计算并输出两个整数的最大值。

b6b27001178f41c725aece9a131367c8.png

2. 双分支选择结构

2.1 如何使用双分支控制条件的语句?

if(表达式P) 语句1

else 语句2

使用if-else流程是:如果表达式P的值为真,就执行语句1,否则就执行语句2.

知识补丁

if-else语句跟简单的if语句的区别是?

使用简单的if语句,可供的选择是:要么执行一条语句;要么就不执行,跳过它。而if-else 语句可供的选择是:在两条语句中选择其中的一条来执行。

接题看招005:用双分支控制条件的语句编程,计算并输出两个整数的最大值。**

df90413be1e4a1b4811d781162f30e5b.png

知识拓展:条件运算符和条件表达式

1.何为条件运算符?(关于条件运算符知多少?)

条件运算符是C语言中的唯一一个三元运算符,即参与运算时需要三个操作数。比如通过加减乘除运算符,将X,Y,Z(任意三个变量)进行相关的运算。

2.条件运算符跟if-else有何区别?

由条件运算符构成的条件表达式,会使程序变得更加简单,直观。

接招看题006:用条件运算符编程,计算并输出两个整数的最大值。

ce07f15b9847f6275aedcc1f1ffca4fe.png

知识补丁::

1. 记住这句话:程序是解决问题的一种算法。是使用代码(字符)来实现的。

因此,解题前,我们首先要知道解决问题的算法是什么,然后将算法转换成代码(字符)

本题算法:首先通过关系运算符,比较两个数的关系,即谁大谁小?

然后将最大值赋值给变量max,或者说将最大值存于变量max中。*

2.何为条件表达式?

表达式1?表达式2:表达式3

讲解说明:当表达式1的值为真,那么将表达式2的结果赋值给表达式1,否则将表达式3的结果赋值给表达式1.

现在讲解接招看题006是如何使用条件表达式的。

max=a>b?a:b;//注意运算符的优先级

运算符的优先级顺序,记住五个字:非术关逻赋。

非,!。优先级第一。最大。这是校长。

术,算数运算符,+,-,*,/,%。优先级第二。这是院长。

关,>,>=, 其中,>,>=, 逻,!,&&,||。优先级第四。这是班长。

赋,=。优先级第五。最小。这是组长。

知识补丁:

这些专业知识你只需有个大概的了解就行,不需要死记硬背。只需要在用的过程中,你知道知识在哪儿,并且会用(当然少不了动手练习喽),就OK了。互联网时代,记忆交给存储器(U盘,云盘,移动硬盘),分析理解交给大脑(CPU)。

3. 多分支选择结构

3.1多分支选择结构

即else-if形式的条件语句。如下:

if(表达式1) 语句1

else if (表达式2) 语句2

else if (表达式n) 语句n

else 语句n+1

多分支选择结构流程图如下:

9e4b51b571dacddbd8a17b08e493e4a7.png

知识补丁:

条件语句语法规定,每个条件分支只能带一条语句。(这个缺点就产生了复合语句)但是实际中条件分支里往往会有多条语句才能完成这时就需要{}括起来。

知识总结归纳:

1.何为条件语句的三种形式?分别是怎么用的?

第一种单分支—if(表达式P) 语句A

第二种双分支—if(表达式P) 语句A

else 语句B

第三种多分支—if(表达式1) 语句1

else if(表达式2) 语句2

else if(表达式n) 语句n

else 语句n+1

2.何为复合语句?

用{}括起来的语句叫复合语句。

例如,max=a;

printf(“max=%d”,a);

以上为两条语句。但是若用{}括起来,就是一条复合语句。(复合语句是一个整体,可看作一条语句。)例如:

{

max=a;

printf(“max=%d”,a);

}

3.2用于多路选择的switch语句

使用条件:多分支选择。

举例:分类统计学生成绩;90分以上为A,80-90分之间为B;60-70分之间为C。常用于分类统计,菜单等问题。

语句格式:

switch(表达式)

{case 常量表达式1:语句1;break;

case 常量表达式2:语句2;break;

case 常量表达式3:语句3;break;

*

*

*(至少有3个分支)

case 常量表达式n:语句n;break;

default: 语句n+1;

}

switch语句执行规律

首先计算表达式的值,并逐个与其后的常量表达式相比较,如果表达式的值与某个常量表达式的值相等,即执行该常量表达式后的语句;如果没有找到与表达式匹配的常量表达式,则执行defualt 语句。

知识补丁:

(1)在switch语句中,“case常量表达式”相当于一个语句标号,表达式的值和某标号相等就执行该标号后的语句,碰到break跳出本层switch。

(2)switch括号内表达式的值和case后面的常量的表达式的值只能是整型或字符型。读者注意记忆重点知识。

(3)同一个switch语句中,case后的各常量表达式的值不能相同。

(4)在case后允许有多个语句,可以不用{}括起来。

(5)各case和default语句的先后顺序可以变动,不会影响程序运行的结果。

(6)在需要用switch语句选择关系型运行条件的时候,应先用if进行判断。

接招看题007:从键盘接受一个数字,输出对应的星期几的英文单词。

5184d0389ad31a6f535d8cb0edadb328.png

04f02f8ee2f3969d3960b4672c0df31d.png

深入理解break和continue语句:

(1)结合接招看题007进行理解。注意没有break和有break的效果(这就是理解)

当case常量表达式没有break结尾,会导致连续输出case后面语句里的字符串。加上break结尾,会直接跳出本层switch,好处是避免输出不应有的结果。(显然连续输出不是我们想要的输出结果。我们想要的结果是“一对一”的逻辑关系,1—monday,7—sunday,而不是1—monday****fridaysunday)

(2)因为continue语句只用在for,while,do-while等循环体中,所以在后续循环结构会涉及到。

switch与if的比较

if语句只有2个分支—是 和 否;而switch语句至少有3个分支。

最后,目前此文浅析到此,后面会继续更新。欢迎各位提供反馈,继续丰富此文档!2018-9-29

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值