判断
做判断
例:计算时间差
(资料图)
输入两个时间,每个时间分别输入小时和分钟的值,然后输出两个时间之间的差,也以几小时几分表示
如果
判断的条件
1、条件
计算两个值之间的关系,所以叫做关系运算
2、关系运算的结果
当两个值的关系符合关系运算符的预期时,关系运算的结果为整数1,否则为整数0
3、优先级
所有的关系运算符的优先级比算术运算的低,但是比赋值运算的高
判断是否相等的==和!=的优先级比其他的低,而连续的关系运算是从左到右进行的
找零计算器
找零计算器需要用户做两个操作:输入购买的金额,输入支付的票面,而找零计算器则根据用户的输入做出相应的动作:计算并打印找零,或告知用户余额不足以购买。
从计算机程序的角度看,这就是意味着程序需要读用户的两个输入,然后进行一些计算和判断,最后输出结果。
注释
以两个斜杠“//"开头的语句把程序分成了三个部分:
初始化
读入金额和票面
计算并打印找零
延续数行的注释,要用多行注释的格式来写。多行注释由一对字符序列“/* "开始,而以“*/”结束。
也可以用于一行内的注释
否则的话
如果在if后面还有语句,它们在if结束后会执行,无论条件如何
如果钱不够,输出你的钱不够
else否则的话
if语句
一个基本的if语句由一个关键字if开头,跟上在括号里的一个表示条件的逻辑表达式,然后是一对大括号“{}”之间的若干条语句。如果表示条件的逻辑表达式的结果不是零,那么就执行后面跟着的这对大括号中的语句,否则就跳过这些语句不执行,而继续下面的其他语句。
if语句这一行结束的时候并没有表示语句结束的“;”,而后面的赋值语句写在if的下一行,并且缩进了,在这一行结束的时候有一个表示语句结束的“;”。这表明这条赋值语句是if语句的一部分,if语句拥有和控制这条赋值语句,决定它是否要被执行。
例:判断成绩
嵌套的if-else
例:找出三个数中的最大
如果要求输入三个整数,输出其中最大的,应该怎么做?
1. 嵌套的判断
当if的条件满足或者不满足的时候要执行的语句也可以是一条if或if-else语句, 这就是嵌套的if语句
else的匹配
else总是和最近的那个if匹配
缩进格式不能暗示else的匹配
Tips
在if或else后面总是用{}
即使只有一条语句的时候
级联的if-else if
1、分段函数
f(x)=-1; x<0
0; x=0
2x; x>0
代码:
级联的if-else if
if-else的常见错误
忘了大括号
永远在if和else后面加上大括号, 即使当时后面只有一条语
if后面的分号
错误使用==和=
if只要求()里的值是零或非零
4、使人困惑的else
在if和else之后必须加上大括号形成语句块;
大括号内的语句缩进一个tab的位置;
多路分支
1、switch-case
控制表达式只能是整数型的结果
常量可以是常数,也可以是常数计算的表达式
switch语句可以看作是一种基于计算的跳转,计算控制表达式的值后,程序会跳转到相匹配的case (分支标号)处。分支标号只是说明switch内部位置的路标,在执行完分支中的最后一条语句后,如果后面没有break,就会顺序执行到下面的case里去,直到遇到一个break,或者switch结束为止。
练习
成绩转换
将一个百分制成绩转换为五分制成绩,转换规则
大于等于90分为A
小于90分且大于等于80为B
小于80分且大于等于70为C
小于70分且大于等于60为D
小于60为E