# Java 的基础知识(二)
# 前言
本文主要介绍 java 的分支结构。
java 的分支结构主要有两种, if语句
和 switch语句
。
# if... 语句
一个 if...语句
包含一个布尔表达式和执行语句块。
基本形式如下:
if(布尔表示式){ | |
// 布尔表达式结果为 true 时执行的语句块 | |
} | |
// 当执行语句只有一句时,也可以写成以下形式 | |
if(布尔表达式) 一条执行语句; | |
// 但是,不管只有一条语句还是存在多条,都推荐使用带 {} 的格式,能够更好地体现代码层级关系 |
案例展示
public class Main{ | |
public static void main(String args[]){ | |
int age = 22; | |
if(age >= 18){ | |
System.out.println("我已经成年了"); | |
} | |
} | |
} | |
/* 运行结果 | |
我已经成年了 | |
*/ |
# if...else... 语句
if...
语句后面可以跟 else...
语句,当 if...
语句的布尔表达式值为 false
时,else 语句块会被执行。
基本形式如下:
if(布尔表达式){ | |
// 布尔表达式结果为 true 时执行的语句块 | |
}else{ | |
// 布尔表达式结果为 false 时执行的语句块 | |
} |
案例展示
public class Main{ | |
public static main(String args[]){ | |
int age = 15; | |
if(age >= 18){ | |
System.out.println("我已经成年了"); | |
}else{ | |
System.out.println("我还未成年"); | |
} | |
} | |
} | |
/* 运行结果 | |
我还未成年 | |
*/ |
# if...else if...else... 语句
当简单的 是否
满足不了需求时,就可以使用 else if...
语句来扩充分支。
基本形式如下:
if(布尔表达式1){ | |
// 布尔表达式 1 结果为 true 时执行的语句块 | |
}else if(布尔表达式2){ | |
// 布尔表达式 2 结果为 true 时执行的语句块 | |
} | |
······ | |
else if(布尔表达式n){ | |
// 布尔表达式 n 结果为 true 时执行的语句块 | |
}else{ | |
// 前面所有布尔表达式结果均为 false 时执行的语句块 | |
} |
案例展示
public class Main{ | |
public static main(String args[]){ | |
int age = 30; | |
if(age == 30){ | |
System.out.println("而立之年"); | |
}else if(age == 40){ | |
System.out.println("不惑之年"); | |
}else if(age == 50){ | |
System.out.println("知命之年"); | |
}else if(age == 60){ | |
System.out.println("耳顺之年"); | |
}else if(age == 70){ | |
System.out.println("古稀之年"); | |
}else{ | |
System.out.println("不知几年"); | |
} | |
} | |
} | |
/* 运行结果 | |
而立之年 | |
*/ |
# 嵌套的 if... 语句
当我们想对一个分支继续分出更多小的分支时,就可以使用嵌套的 if...
语句。
基本形式如下:
if(布尔表达式1){ | |
if(布尔表达式2){ | |
// 布尔表达式 2 结果为 true 时执行的语句块 | |
}else{ | |
// 布尔表达式 1 结果为 true,布尔表达式 2 结果为 false 时执行的语句块 | |
} | |
}else{ | |
// 布尔表达式 1 结果为 false 是执行的语句块 | |
} | |
// 以上只是简单介绍基本的嵌套方式,使用时可以根据实际场景进行随意组合嵌套 |
案例展示
public class Main{ | |
public static main(String args[]){ | |
int rmb = 100; | |
if(rmb >= 50){ | |
if(rmb != 50){ | |
System.out.println("这是一张一百"); | |
}else{ | |
System.out.println("这是一张五十"); | |
} | |
}else{ | |
if(rmb < 20){ | |
if(rmb >= 5){ | |
if(rmb != 5){ | |
System.out.println("这是一张十元"); | |
}else{ | |
System.out.println("这是一张五元"); | |
} | |
}else{ | |
System.out.println("这是一张一元"); | |
} | |
}else{ | |
System.out.println("这是一张二十"); | |
} | |
} | |
} | |
} | |
/* 运行结果 | |
这是一张一百 | |
*/ |
# switch 语句
swith语句
是由一个控制表达式和多个 case
标签组成,当控制表达式值与某个 case
后的常量相等时,执行 case
后的语句。每个 case
为一个分支。
基本形式为:
switch(expression){ | |
case value1 : | |
// 语句或函数 | |
break; // 可省略,省略时将依次执行下一个 case 语句后的语句,直到遇到 break 或没有 case 语句,才退出 switch | |
case value2 : | |
// 语句或函数 | |
break; | |
// 任意数量的 case 语句 | |
default : // 表示当前面的 case 都不满足时执行,可省略 | |
// 语句或函数 | |
} |
使用 switch
需遵循如下规则:
switch
语句中的变量类型只能为byte
、short
、int
或者char
。从 Java SE 7 开始,switch
支持字符串String
类型了,同时case
标签必须为字符串常量或字面量。switch
语句可以拥有多个case
语句。每个case
后面跟一个要比较的值和冒号。case
语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。- 当变量的值与
case
语句的值相等时,那么case
语句之后的语句开始执行,直到break
语句出现才会跳出switch
语句。 - 当遇到
break
语句时,switch
语句终止。程序跳转到switch
语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有break
语句出现,程序会继续执行下一条case
语句,直到出现break
语句。 switch
语句可以包含一个default
分支,该分支必须是switch
语句的最后一个分支。default
在没有case
语句的值和变量值相等的时候执行。default
分支不需要break
语句。
案例展示
public class Main{ | |
public static main(String args[]){ | |
int level = 1; | |
switch(level){ | |
case 1 : | |
System.out.println("耗能低"); | |
break; | |
case 2 : | |
System.out.println("中等"); | |
break; | |
default : | |
System.out.println("耗能高"); | |
} | |
} | |
} | |
/* 运行结果 | |
耗能低 | |
*/ |