第四章 分支结构程序设计

                                 单等号赋值,双等号判断;    '0'代表‘假’,‘1’代表‘真’

4.1 引例

【例4.1】输入三角形的三条边,判断是否能构成三角形,若能则计算并输出三角形的面积,否则给出除错提示

 

【例4.2】编写程序,输入x的值,按以下分段函数计算并输出y的值。

  运行结果1:

 运行结果2:

 

 

4.2   关系运算符、逻辑运算符、条件运算符

4.2.1   关系运算符和关系表达式

1.关系运算符

 

 

注意:

1.都是双目运算符,结合方向是左结合。

2.关系运算符的优先级低于双目运算符,但高于赋值运算符。

3.>、<、>=、<=的优先级相同,==、!=的优先级相同,前者优先级高于后者。

2.关系表达式

(1)“=”是赋值运算符,“==”是关系运算符

(2)对实数进行相等判断可能得不到赋值运算符

(3)‘1’表示真;‘0’表示假

【例4.3】关系运算示例

 

.2.2  逻辑运算符和逻辑表达式

1.逻辑运算符

 

 

注意:与运算符&&和或运算符||都是双目运算符,非运算符!为单目运算符

2.逻辑表达式

 

 

 

 

 

 

逻辑表达式的举例

(1)ch是英文字母。逻辑表达式为(ch>='a'&&ch<='z')||(ch>=‘A’&&ch<='Z')

(2)a,b不同时为0。逻辑表达式为(a==0&&b==0)或!=0||b!=0或a||b

(3)ch为空格和回车。逻辑表达式为(ch==''||(ch=='\n')

(4)year是闰年,即year能被4整除但不能被100整除,或year能被400整除。逻辑表达式为(year%4==0&&year%100!=0)||(year%400==0)

4.2.3  条件运算符和条件表达式

1.条件运算符

条件运算符由“?”和“:”两个符号组成,由于条件求值,是三目运算符,要三个操作数。条件运算符的优先级低于逻辑运算符、高于赋值运算符,是右结合

2.条件表达式

由条件运算符将三个表达式连接起来的式子称为条件表达式

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

【例4.6】用条件表达式求两个数中的较大值

 

 

4.3  使用if-else实现分支结构

4.3.1 if-else语句

1.双分支if语句

其一般形式如下:

if(表达式)

        语句1;

else

        语句2;

【例4.7】使用双分支if语句求两个数中较大的数

运行结果1\ 

 运行结果2

 

 

【例4.8】编写一个程序,根据键盘输入的x的值,计算y的值

 运行结果1

  运行结果2

 

 

双分支if语句可以用条件表达式替换

例如求一个数的绝对值,下面的if语句和条件表达式是等价的。

 

 

2.单分支if语句

其一般形式如下:

if(表达式)

  语句:

                                  【例4.9】编写程序任意输入一个实数,输出其绝对值

 

 

【例4.10】若有如下分段函数,根据x的值,求y的值

运行结果1

   运行结果2

 

 【例4.11】输入3个实数,要求按从大到小的顺序输出

 

 

4.3.2   if语句的嵌套

一个if语句中又包含一个或多个if语句的现象称为if语句的嵌套

if语句的基本形式:

if(表达式)

  语句1;

else

  语句2;

其中“语句1”或“语句2”都可以嵌套另一个if语句,在缺省else部分的if语句中的“语句”也可以嵌套另一个if语句。

if(表达式1)

 if(表达式2)

        语句1;

else

        语句2;

else

        if(表达式3)

        语句3;

else

        语句4;

在if语句嵌套的结构中一定要注意else和if之间的对应关系。如

 

【例4.12】

运行结果1

 运行结果2

 

 

【例4.13】编写程序,输入一个x的值,按以下函数计算并输出y的值

 运行结果1

 运行结果3

 

 

 

4.3.3   多分支结构

多分支if语句是最常用的实现多路分支的方法,其一般形式如下:

if(表达式1)

        语句1;

else if(表达式2)

        语句2;

        。。。

else if(表达式n-1)

        语句n-1;

else

        语句n;

【例4.14】编写程序,输入x的值,按以下分段函数计算并输除y的值

 

 【例4.15】 

 

 

 

4.4    使用switch语句实现分支结构

switch(表达式)

{

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

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

。。。。。。

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

default:语句n+1;break;

}

关于switch语句的几点说明:

(1)switch后的表达式可以是任何表达式,其值只能为整型、字符型、枚举型之一

(2)每个case后面的常量表达式的值互不相同,否则就会出现互相矛盾的现象

(3)各个case和default

(4)可以让多个case共用一组执行语句。

(5)switch语句允许嵌套使用

【例4.16】编写程序,输入一个月份值,输出该月份是第几季度

 

  【例4.17】本程序的功能是:根据键盘输入的年、月,输入该年、该月的天数

 

 

 【例4.18】使用switch语句编写例4.14的程序

 

 

注意:在switch语句格式中不使用break语句

4.5  分支结构程序设计示例

【例4.19】编写程序,输入x,计算并输出下例分段函数f(x)的值,要求调用sqrt()函数平方根,调用pow()函数求幂

 

 

        【例4.20】编写程序,判断输入的年份是否为闰年

1.标准格式实现

  2.嵌套格式实现

 3.多分支格式实现

 

  【例4.21】由键盘输入一个3位数,判断该数是否为升序数

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值