Java的if分支语句

Java的if分支语句:

Java中的if是一种条件语句,用于在程序运行时基于给定的条件选择要执行的语句块。

结构化程序设计的流程控制语句有三种基本的控制结构,即顺序结构、选择结构和循环结构。顺序结构就是从头到尾依次执行每一条语句。分支结构就是根据不同的条件执行不同的语句或者语句块。而循环结构就是为了重复执行一类操作而重复行语句或者语句块。几乎所有的程序主要都是由顺序结构组成的,在顺序结构中再嵌入分支结构和循环结构。

Java语言虽然是面向对象的程序设计语言,但在局部的语句块内部,仍须借助结构化程序设计的基本流程来实现相应的功能。在Java中,语句块是由一对大括号括起来的若干条语句的集合,有实现分支结构的if语句、switch语句和实现循环结构的 while 语句、for 语句等。下面是if分支语句的用法。所谓的分支结构,就是根据一定的条件,有选择性地去执行某段代码

if语句的3种形式。

第一种形式:

单选条件语句特点:只有满足if条件才会执行内部操作语句。 
单选条件语句的语句格式为:

简单if语句:

流程图:

该语句的执行流程为:当if语中的条件表达式为tue 时执行一组相关的语句,否则不执行语句,

N-S图:

说明:

①条件表达式必须用一对圆括号“0”括起来。

② 语句块可以是一条语句,也可以是多条语句,若是多条语句,必须用一对花括号“{}”括起来构成一个复合语句。

第一种形式if分支语句(例):

输入一学生成绩,如大于等于60分,则输出"考试通过"。

思维导图:

代码展示:

第二种形式:

双选条件语句特点:一定且只会执行其中一个操作语句。 

双选条件语句的语句格式为:

双分支语句:

流程图:

该语句的执行过程为:当if语句中的条件表达式为 tue 时执行语句 1,否则执行语句 2。

N-S图:

第二种形式双分支if语句(例):

输入一学生成绩,如大于等于60分,则输出"考试通过",否则输出"考试不通过"。

思维导图:

代码展示:

if分支语句与条件运行符:

读程练习:

当x输入值为60时,输出结果:

当x输入值为34时,输出结果:

第三种形式:

单分支语句应对的情况是很简单的,在实际开发中可能会很复杂,这就需要使用多分支语句来进行处理。

多选条件语句特点:自上而下进行判断,当执行到某个满足的分支时,剩余分支将不再执行。最多执行一个操作语句,只要逻辑完整,else-if的数量不做具体要求。else部分可以省略(但为了保证分支的完整性,通常不会省略)。

多选条件语句的语句格式为:

多分支if语句:

流程图:

第三种形式多分支if语句(例):

将百分制成绩转换为等级制成绩。转换标准如下:90分以上为“优”80分以上为“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。

思维导图:

代码展示:

常见错误分析:

语法错误,例1:

将百分制成绩转换为等级制成绩。转换标准如下:90分以上为“优秀”,80分以上为“良”,70分以上为“中”,60分以上为“及格”,60分以下为“不及格”。

这是数学的写法,改为Java语言的写法为:
score<90 && score>=80

逻辑错误,例2:

将百分制成绩转换为等级制成绩。转换标准如下:大于等于90分为“优秀”,小于90分大于等于80分为“良”,小于80分大于等于70分为“中”,小于70分大于等于60分为“及格”,60分以下为“不及格”。

从每个条件看,好像都没有错但程序的判断是从第一个条件开始,如满足条件则后续条件不再判断。

假如输入分数87分,第一个条件score>=60为true,输出"及格"结果错误。

忘记必要的括号:

如果块中只在一条语句,可以省略花括号。但要执行的是多条语句,必须用花括号括起来。

例:

在if行出现错误的分号

例:

对布尔值的冗余测试:

为了检测测试条件中的布尔型变量是true还是false。

程序例举:

例1:

编写一个控制台应用程序,从键盘上输入一个数,输出它的绝对值。

代码展示:

例2:

某商店为了吸引顾客,采取以下优惠活动:所购商品在1000元以下的,打9折优惠;所购商品大于等于1000元的,打8折优惠。

代码展示:

例3:

幸运大转盘:转到8:一等奖; 转到6:二等奖;转到2,5:三等奖;其他:谢谢参与

请输入编号,根据编号输出结果。如果输入的编号不在1-9之间输出“编号错误”。

代码展示:

使用if语句时,需要注意以下几点:

  • 如果if语句的语句序列中只有一条语句,可以省略大括号。但为了增强程序的可读性,建议即使只有一条语句也使用大括号。
  • 在使用三元运算符时,可以简化if-else语句的写法,使代码更加简洁。例如:b = a > 0 ? a : -a; 这行代码等同于 if (a > 0) b = a; else b = -a;
  • 11
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值