4.1 引例
【例4.1】输入三角形的三条边,判断是否能构成三角形,若能则计算并输出三角形的面积,否则给出除错提示。
【例4.2】编写程序,输入x的值,按以下分段函数计算并输出y的值。
运行结果1:
运行结果2:
4.2 关系运算符、逻辑运算符、条件运算符
4.2.1 关系运算符和关系表达式
1.关系运算符
运算符 | 含义 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
2.关系表达式
(1)“=”是赋值运算符,“==”是关系运算符
(2)对实数进行相等判断可能得不到赋值运算符
(3)‘1’表示真;‘0’表示假
【例4.3】关系运算示例
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符
运算符 | ! | && | || |
名称 | 逻辑非 | 逻辑与 | 逻辑或 |
结合性 | 右结合 | 左结合 | 做结合 |
优先级 | 高 | 到 | 低 |
2.逻辑表达式
x | y | !x | x&&Y | x||y |
0 | 0 | 1 | 0 | 0 |
0 | 非0 | 1 | 0 | 1 |
非0 | 0 | 0 | 0 | 1 |
非0 | 非0 | 0 | 1 | 1 |
【例4.5】逻辑运算示例
逻辑表达式的举例
(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.7】使用双分支if语句求两个数中较大的数
【例4.8】编写一个程序,根据键盘输入的x的值,计算y的值
【例4.9】编写程序任意输入一个实数,输出其绝对值
【例4.10】若有如下分段函数,根据x的值,求y的值
【例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之间的对应关系。如
1.if(表达式1)
2.if(表达式2)
3.语句1;
4.else
5.语句2;
【例4.12】
【例4.13】编写程序,输入一个x的值,按以下函数计算并输出y的值
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】编写程序,判断输入的年份是否为闰年
【例4.21】由键盘输入一个3位数,判断该数是否为升序数