生活中存在各种选择,程序也是一样,拥有不同的执行路线。今天我们来看看 JAVA 中如何进行流程控制,首先了解各类控制流程关键字的用法。
1.if - else
if - else 是最基本的流程控制形式,if () 内放入布尔表达式,表达式结果为 true 则执行 if 后{} 中的内容,否则执行 else { }中的内容, 其中 else 为可选项。
(1) if - else
int number = 1;
if (number % 2 == 0) {
System.out.println("我是偶数");
} else {
System.out.println("我是奇数");
}
我是奇数
(2)if
int number = 2;
if (number % 2 == 0) {
System.out.println("我是偶数");
}
我是偶数
2.循环(while、do-while、for、foreach)
while、do-while、for、foreach 都可以用来控制循环(循环也称为迭代),下面我们来依次了解。
(1)while
while() 内放入布尔表达式,每次循环前,都会进行一次判断,为 false 继续循环,为 true 跳出循环。
int number = 1;
while (number < 5) {
System.out.println("number===" + number);
number++;
}
number===1
number===2
number===3
number===4
(2)do-while
do-while 的用法与 while 类似,区别在于:do-while 至少会执行一次循环,无论 while 内布尔表达式的结果是否为 true。
int number = 6;
do {
System.out.println("number===" + number);
number++;
}
while (number < 5);
number===6
(3)for
for 循环由三部分组成:初始化表达式、布尔表达式、步进;步进为可选项;
布尔表达式为 true 则继续循环,false 则结束循环。
a. 初始化表达式 + 布尔表达式 + 步进
for (int i = 0; i < 5; i++) {
System.out.println("i====" + i);
}
i====0
i====1
i====2
i====3
i====4
b. 初始化表达式 + 布尔表达式
for (int i = 0; i < 5; ) {
System.out.println("i====" + i);
i++;
}
i====0
i====1
i====2
i====3
i====4
(4)foreach
foreach 可用来遍历数组或者集合,会根据顺序依次遍历其中的每个对象,foreach 的性能是所有循环中最优的,推荐优先使用。
int[] numberArray = {1, 2, 3, 4, 5};
for (int number : numberArray) {
System.out.println("number===" + number);
}
number===1
number===2
number===3
number===4
number===5
在使用循环的过程中,我们可能会遇到跳过单次循环或者突然中断循环的场景,这时候需要用到 continue (跳过单次循环),break(中断整个循环)。
continue
执行 continue 后,本次循环的后续代码将不会执行,将跳至循环体开始处继续进行下一次循环。
int[] numberArray = {1, 2, 3, 4, 5};
for (int number : numberArray) {
if (number == 3) {
continue;
}
System.out.println("number===" + number);
}
number===1
number===2
number===4
number===5
break
执行 break 后,整个循环立刻强行结束,本次循环的后续代码也不会执行。
int[] numberArray = {1, 2, 3, 4, 5};
for (int number : numberArray) {
if (number == 3) {
break;
}
System.out.println("number===" + number);
}
number===1
number===2
循环中我们还可以用到标签,用来作为循环的标识,在使用嵌套循环的时候,可以对指定循环执行 continue 或者 break 操作(例如:在内部循环终止最外层的循环)。
external:
for (int i = 0; i < 4; i++) {
if (i == 2) {
System.out.println("continue external");
continue external;
}
System.out.println("i===" + i);
inner:
for (int j = 9; j < 13; j++) {
if (j == 10) {
System.out.println("continue inner");
continue inner;
}
if (i == 3 && j == 11) {
System.out.println("break externals");
break external;
}
if (j == 12) {
System.out.println("break inner");
break inner;
}
System.out.println("j===" + j);
}
}
i===0
j===9
continue inner
j===11
break inner
i===1
j===9
continue inner
j===11
break inner
continue external
i===3
j===9
continue inner
break externals
external 表示外部循环,inner 表示内部循环,若在使用 continue 或 break 的时候,未注明生效的标签,则默认使用就近原则,针对靠的最近的循环生效。
3.switch
switch 为一种选择语句,小括号的内容(只能为 int 或者 String 类型)根据 case 给出的类型一一匹配,执行符合类型后跟随的代码内容。
for (int i = 0; i < 5; i++) {
System.out.print("i===" + i + "\t");
switch (i) {
case 1:
System.out.print("我是数字1" + "\n");
break;
case 2:
System.out.print("我是数字2" + "\n");
break;
case 3:
System.out.print("我是数字3" + "\n");
break;
case 4:
System.out.print("我是数字4" + "\n");
break;
default:
System.out.print("未匹配上任何数字" + "\n");
break;
}
}
i===0 未匹配上任何数字
i===1 我是数字1
i===2 我是数字
i===3 我是数字3
i===4 我是数字4
我们看到每个 case 执行内容后,都加入了 break 关键字,表示终止 switch ;倘若不加 break ,还会继续往执行所有剩余的 case 内的代码(无论是否匹配) ,直至完成所有匹配或者遇到一个 break 为止;default 关键字表示,没有匹配上任何 case ,则执行 dufault 内的代码,default 为可选项。
for (int i = 0; i < 5; i++) {
System.out.print("i===" + i + "\t");
switch (i) {
case 1:
System.out.print("我是数字1" + "\n");
case 2:
System.out.print("我是数字2" + "\n");
case 3:
System.out.print("我是数字3" + "\n");
case 4:
System.out.print("我是数字4" + "\n");
default:
System.out.print("未匹配上任何数字" + "\n");
}
}
i===0 未匹配上任何数字
i===1 我是数字1
我是数字2
我是数字3
我是数字4
未匹配上任何数字
i===2 我是数字2
我是数字3
我是数字4
未匹配上任何数字
i===3 我是数字3
我是数字4
未匹配上任何数字
i===4 我是数字4
未匹配上任何数字
除此之外,我们还可以将多个 case 叠加在一起共用同一块代码执行内容,虽然 dfault 内的 break 起不到实质性的作用,但为了舒适的代码阅读性,建议还是加上使用。
for (int i = 0; i < 5; i++) {
System.out.print("i===" + i + "\t");
switch (i) {
case 0:
case 1:
case 2:
case 3:
System.out.print("这个数字小于3" + "\n");
break;
default:
System.out.print("这个数字大于等于3" + "\n");
break;
}
}
i===0 这个数字小于3
i===1 这个数字小于3
i===2 这个数字小于3
i===3 这个数字小于3
i===4 这个数字大于等于3
本次分享至此结束,希望本文对你有所帮助,若能点亮下方的点赞按钮,在下感激不尽,谢谢您的【精神支持】。
若有任何疑问,也欢迎与我交流,若存在不足之处,也欢迎各位指正!