在C++中,我们经常需要对一些条件做出判断,决定执行什么操作,这时就需要使用选择结构语句,比如if条件语句和switch条件语句。
if条件语句有三种语法格式,如下图所示。
(1)if语句——单分支结构,其运行逻辑如下图所示。
(2)if…else语句——双分支结构,其运行逻辑如下图所示。
(3)if语句的嵌套。在一个if语句中还可以包含一个或多个if语句,这叫作“if语句的嵌套”,其运行逻辑如下图所示。
训练2(B2050): 给定三条线段的长度(正整数),判断这三条线段能否构成一个三角形。
训练3(B2037): 给定一个整数 n ,判断 n 是奇数还是偶数。若 n 是奇数,则输出odd;若 n 是偶数,则输出even。
训练4(P5711): 输入一个年份,判断其是否是闰年,是则输出1,否则输出0。
训练5(P5714): BMI指数是国际上常用的衡量人体胖瘦程度的一个指标。BMI= m / h 2 ,其中 m 指体重(千克), h 指身高(米)。不同体型的BMI指数判断逻辑如下。
●小于18.5:体重过轻,输出Underweight。
●大于或等于18.5且小于24:正常体重,输出Normal。
●大于或等于24:肥胖,首先输出BMI指数,然后换行,再输出Overweight。
输入体重和身高数据,根据BMI指数判断体型并输出对应的判断结果。
训练6(B2043): 给定一个整数 x ,判断它能否被3、5、7整除,并输出相应的信息。
●能同时被3、5、7整除:直接输出3 5 7,每两个数之间都有一个空格,下同。
●只能被其中两个数整除:按从小到大的顺序输出这两个数,例如35或者37或者57。
●只能被其中一个数整除:输出这个数。
●不能被其中的任何一个数整除:输出小写字符“n”。
训练7(B2047): 编写程序,计算下列分段函数 y = f ( x )的值。
●当0≤ x <5时, y = -x +2.5。
●当5≤ x <10时, y =2-1.5( x -3)( x -3)。
●当10≤ x <20时, y = x /2-1.5。
输入一个浮点数 x (0≤ x <20),输出 x 对应的分段函数值 f ( x ),结果保留3位小数。
训练8(B2048): 请根据邮件的重量和用户要求,选择是否加急计算邮费。计算规则如下。
●重量在1000克以内(包括):基本邮费8元。
●超过1000克的部分:每500克加收超重邮费4元,不足500克的部分按500克计算。
●用户选择加急:多收5元。
输入以空格隔开的正整数 x 和字符 c (y或n),分别表示重量、是否选择加急。若字符是y,则表示选择加急;若字符是n,则表示未选择加急。
除了if条件语句,switch条件语句也是一种常用的选择结构语句。与if条件语句不同,switch条件语句只能针对某个表达式的值做出判断,从而决定程序执行哪段代码。
注意 switch条件语句在执行完一个case语句之后不会自动停止,需要使用break语句停止;switch条件语句中的每个case语句都必须对应一个单独的值,该值必须是整数或字符,不能是浮点数。若涉及取值范围、浮点数或比较,则先使用if…else语句转换。
训练9(P5716): 输入年份和月份,输出这一年的这个月有多少天(需要考虑闰年)。