分支语句的嵌套
[日期:2020-11-04] | 作者:信息技术 次浏览 | [字体:大 中 小] |
有些问题的条件判断比较复杂,只用一条if…else语句无法表达清晰,这时可以在if分支或者else分支的内部再使用另一个if 语句,这种情况称为选择结构的嵌套。
例三:
给出100分制成绩,要求输出成绩等级A、B、C。80分及以上为A,60~80(包括60但不包括80)分为B,60分以下为C。
程序如下:
#include <iostream>
using namespace std;
int main()
{
int a;
cin>>a;
if (a>=80)
cout<<'A';
else
{
if (a>=60)
cout<<'B';
else
cout<<'C';
}
return 0;
}
If…else的嵌套其实很容易把人搞晕,编程时一定要理清逻辑和思路。我们其实可以用逻辑运算符让程序的逻辑更明晰。
用逻辑运算符改写后的程序:
#include <iostream>
using namespace std;
int main()
{
int a;
cin>>a;
if (a>=80)
cout<<'A';
if (a<80&&a>=60)
cout<<'B';
if (a<60)
cout<<'C';
return 0;
}
三、熟悉逻辑运算符
例四:判断“闰年”的口诀是:四年一闰,百年不闰,四百年又闰。即如果该年份能被400整除,或者能被4整除但不能被100整除时,该年份为闰年。用一个逻辑表达式判断x年是否为闰年。
例五:假设变量定义如下为“int A=1,B=0,C=0,D=1;”,以下逻辑运算表达式的值为真(1)的有( )。
A.(A&&B)‖(C&&D) B.((A&&B)‖C)&&D
C.A&&((B‖C)‖D) D.(A&&(B‖C))‖D
四、分支语句编程实战
上机完成如下程序:
1.读入一个数,若这个数大于1并且小于100,则输出yes。(注意这里的数需同时满足两个条件,可以使用前面的关系运算符“&&”,该运算符的意义为需要同时满足运算符前后两个条件)
2.输入三个数,输出其中最大的数。
课后提高练习:
【邮费】
根据邮件的重量和用户是否选择加急计算邮费。计算规则:重量在1000克以内(包括1000克),基本费8元。超过1000克的部分,每500克加收超重费4元,不足500克部分按500克计算;如果用户选择加急,多收5元。
输入一行:两个整数,第一个表示邮件的重量,第二个数为1或者0,1表示加急,0表示不加急。
输出一个整数,表示应收邮费。
【商场促销】
某商场为迎接即将到来的“六一”儿童节,推出了一系列优惠活动。
(1)如果是该商场的VIP客户,那么:
如果购买的商品价值在500元以下(含500元),将享受8.5折优惠;
如果购买的商品价值在500元以上,1000元以下(含1000元),将享受8折优惠;
如果购买的商品在1000元以上,除了享受7.5折优惠,还将获得一个惊喜大礼包。
(2)如果不是VIP客户,那么:
如果购买的商品价值在500元以下(含500元),将享受9折优惠;
如果购买的商品价值在500元以上,除了享受9折优惠,同时还将获得一个惊喜大礼包。
本题的任务是根据顾客的身份和购买商品的价值,给出一个应付金额,以及在付款时,是否可以领取大礼包。
【输入格式】
第一行一个字符“V”或“C”,“V”表示该顾客是VIP客户,“C”表示是普通客户。
第二行一个正整数,int范围以内,表示该顾客购买的商品价值。
【输出格式】
第一行表示是否可以领取大礼包,如果可以输出“YES”,否则输出“NO”。
第二行一个实数,保留两位小数,表示顾客应付金额。
【样例输入】
V
580
【样例输出】
NO
464.0
提示:因为我们还没学习使用字符型变量和常量,以下做简单介绍:
char a; //定义一个字符型变量a
cin>>a; //读入一个字符,这个字符可能是V或者C
if (a=='V') //判断字符型变量a是否等于字符V,即判断是不是VIP客户