JAVA程序流程控制语句---选择语句

选择语句

在程序设计时,经常需要使用选择结构在结构在程序中完成逻辑判断和选择功能,这就需要用到选择语句。Java中的选择语句包括if语句、if-else语句和switch语句。

if选择语句
if语句只有一个选择的语句结构,所以也叫单分支选择结构,执行过程如下:

  1. 对if后面括号里的条件表达式进行判断。
  2. 如果条件表达式的值为true,就执行表达式后面的语句或后面大括号里的多条语句。
  3. 如果条件表达式的值为false,则跳过if语句,执行下一条语句。
if(条件表达式)
	语句
if(条件表达式)
{
	一条或多条语句
}

if-else双分支选择语句
执行过程:

  1. 对if后面括号里的条件表达式进行判断。
  2. 如果条件表达式的值为true,就执行语句1或语句块1。
  3. 如果条件表达式的值为false,就执行语句2或语句块2。
if(条件表达式)
	语句1
else
	语句2	
if(条件表达式)
{
	语句块1
}
else
{
	语句块2
}	

if-else-if多分支选择语句
if-else-if语句执行的过程如下。

  1. 对if后面括号里的条件表达式进行判断。
  2. 如果条件表达式的值为true,就执行语句块1。
  3. 否则,对条件表达式2进行判断。如果条件表达式的值为true,就执行语句块2。
  4. 否则,依此类推。
  5. 如果所有条件表达式的值都为false,最后执行语句块n。
if(条件表达式1{
	语句块1
}
else if(条件表达式2{
	语句块2
}
...
else if(条件表达式n-1{
	语句块n-1
}
else
{
	语句块n
}				

需要注意的是,最后的else语句可以省略,那么当所有的条件表达式都不成立时,什么也不执行。

当使用选择语句嵌套时需注意:else总是和离它最近的if进行匹配,所以在if语句嵌套时,尽可能使用大括号划分逻辑关系,避免出现问题。

switch多分支开关语句
当选择结构的分支越多时,if-else-if语句就会变得越来越难懂。Java提供了另一种多分支语句——switch语句。switch语句是多分支的开关语句。它的语法格式如下。

switch(表达式)
{
	case常量表达式1:语句组1[break;]
	...
	case常量表达式n-1:语句组n-1[break;]
	default:语句块n
}	

说明:

  • switch后面的表达式值的数据类型可以是字符型(char)、字节型(byte)、短整型(short)或者整型(int),但不可以是布尔型(boolean)、长整型(long)、浮点型(float、double)。
  • case后面的常量表达式的值的类型,必须与switch后面的表达式值的类型相匹配,而且必须是常量表达式或直接字面量。
  • break语句可以省略。如果省略,那么程序会按顺序执行switch中的每一条语句,直到遇到右大括号或break为止。
  • 语句块可以是一条语句或多条语句,但不需要使用大括号括起来。
  • case分支语句和default语句都不是必需的,可以省略。

switch语句执行的过程如下。
(1)将switch表达式的值与各个case后面的常量表达式的值一一进行比较。
(2)当表达式的值与某个case分支的值相等时,程序执行从这个case分支开始的语句组。
(3)如果没有任何一个case分支的值与switch表达式的值相匹配,并且switch语句含有default分支语句,则程序执行default分支中的语句组。
(4)直到遇到break语句或右大括号,结束switch语句。

if选择语句与switch开关语句的区别
从功能上来讲,if语句和switch语句都是多分支选择语句,在通常情况下,对于多分支选择结构,使用if语句和使用switch语句从作用上讲是相同的。但是在实际编写程序时,一般遵循下面的使用原则。

  1. 如果分支的层次不超过三层,那么通常使用if-else-if语句;否则,使用switch语句。
  2. 如果条件判断语句是对一个变量是否属于一个范围进行判断,如“a>60 && a<89”,这时要使用if-else-if语句。
  3. 如果是对同一个变量的不同值做条件判断,既可以使用if-else-if语句,也可以使用switch语句。但建议优先使用switch语句,其执行效率相对高一些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值