3.7 Java流程控制语句
“二哥,流程控制语句都有哪些呢?”三妹的脸上泛着甜甜的笑容,她开始对接下来要学习的内容充满期待了,这正是我感到欣慰的地方。
“比如说 if-else、switch、for、while、do-while、return、break、continue 等等,接下来,我们一个个来了解下。”
01、if-else 相关
1)if 语句
if 语句的格式如下:
if(布尔表达式){
// 如果条件为 true,则执行这块代码
}
画个流程图表示一下:
来写个示例:
int age = 20;
if (age < 30) {
System.out.println("青春年华");
}
输出:
青春年华
2)if-else 语句
if-else 语句的格式如下:
if(布尔表达式){
// 条件为 true 时执行的代码块
}else{
// 条件为 false 时执行的代码块
}
画个流程图表示一下:
来写个示例:
int age = 31;
if (age < 30) {
System.out.println("青春年华");
} else {
System.out.println("而立之年");
}
输出:
而立之年
除了这个例子之外,还有一个判断闰年(被 4 整除但不能被 100 整除或者被 400 整除)的例子:
int year = 2020;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) {
System.out.println("闰年");
} else {
System.out.println("普通年份");
}
输出:
闰年
如果执行语句比较简单的话,可以使用三元运算符来代替 if-else 语句,如果条件为 true,返回 ? 后面 : 前面的值;如果条件为 false,返回 : 后面的值。
int num = 13;
String result = (num % 2 == 0) ? "偶数" : "奇数";
System.out.println(result);
输出:
奇数
3)if-else-if 语句
if-else-if 语句的格式如下:
if(条件1){
// 条件1 为 true 时执行的代码
}else if(条件2){
// 条件2 为 true 时执行的代码
}
else if(条件3){
// 条件3 为 true 时执行的代码
}
...
else{
// 以上条件均为 false 时执行的代码
}
画个流程图表示一下:
来写个示例:
int age = 31;
if (age < 30) {
System.out.println("青春年华");
} else if (age >= 30 && age < 40 ) {
System.out.println("而立之年");
} else if (age >= 40 && age < 50 ) {
System.out.println("不惑之年");
} else {
System.out.println("知天命");
}
输出:
而立之年
4)if 嵌套语句
if 嵌套语句的格式如下:
if(外侧条件){
// 外侧条件为 true 时执行的代码
if(内侧条件){
// 内侧条件为 true 时执行的代码
}
}
画个流程图表示一下:
来写个示例:
int age = 20;
boolean isGirl = true;
if (age >= 20) {
if (isGirl) {
System.out.println("女生法定结婚年龄");
}
}
输出:
女生法定结婚年龄
02、switch 语句
switch 语句用来判断变量与多个值之间的相等性。变量的类型可以是 byte、short、int 或者 char,或者对应的包装器类型 Byte、Short、Integer、Character,以及字符串和枚举类型。
来看一下 switch 语句的格式:
switch(变量) {
case 可选值1:
// 可选值1匹配后执行的代码;
break; // 该关键字是可选项
case 可选值2:
// 可选值2匹配后执行的代码;
break; // 该关键字是可选项
......
default: // 该关键字是可选项
// 所有可选值都不匹配后执行的代码
}
- 变量可以有 1 个或者 N 个值。
- 值类型必须和变量类型是一致的,并且值是确定的。
- 值必须是唯一的,不能重复,否则编译会出错。
- break 关键字是可选的,如果没有,则执行下一个 case,如果有,则跳出 switch 语句。
- default 关键字也是可选的。
画个流程图:
来个示例:
int age = 20;
switch (age) {
case 20 :
System.out.println("上学");
break;
case 24 :
System.out.println("苏州工作");
break;
case 30 :
System.out.println("洛阳工作");
break;
default:
System.out.println("未知");
break; // 可省略
}
输出:
上学
当两个值要执行的代码相同时,可以把要执行的代码写在下一个 case 语句中,而上一个 case 语句中什么也没有,来看一下示例:
String name = "沉默王二";
switch (name) {
case "詹姆斯":
System.out.println("篮球运动员");
break;
case "穆里尼奥":
System.out.println("足球教练");
break;
case "沉默王二":
case "沉默王三":
System.out.println("乒乓球爱好者");
break;
default:
throw new IllegalArgumentException(
"名字没有匹配项");
}
输出:
乒乓球爱好者
枚举作为 switch 语句的变量也很常见,来看例子:
public class SwitchEnumDemo {
public enum PlayerTypes {
TENNIS,
FOOTBALL,
BASKETBALL,
UNKNOWN
}
public static void main(String[] args) {
System.out.println(createPlayer(P
真诚点赞 诚不我欺
回复