Java 流控制语句
Java 应用程序代码通常按照代码出现的顺序从上到下依次执行。为了应用业务逻辑,我们可能需要有条件地执行代码。控制流语句有助于代码块的这种有条件执行。
所有控制流语句都与一个业务条件相关联:
- 当为 true 时,代码块执行;
- 当为 false 时,代码块被跳过。
If-else 语句
if-else
语句告诉程序仅在表达式为真时才执行特定代码段,否则执行else代码块。
public class Mapull {
public static void main(String[] args)
{
boolean condition = true;
if(condition) {
System.out.println("Condition is true");
} else {
System.out.println("Condition is false");
}
}
}
程序输出:
Condition is true
swith 语句
正如 if-else 语句告诉您的程序仅在表达式为 true 或 false 时才执行特定代码段一样,switch 语句可以有多个执行路径。
swith适用于 byte、short、char 和 int 原始数据类型,它还适用于枚举类型、String 类和一些包装某些原始类型的特殊类:Character、Byte、Short 和 Integer。(枚举是在 java 5 中添加的,String 类是在 java 7 中添加的)。
public class Mapull {
public static void main(String[] args) {
String value = "B";
switch (value) {
case "A":
System.out.println("Value is A");
break;
case "B":
System.out.println("Value is B");
break;
default:
System.out.println("Value is neither A nor B");
break;
}
}
}
程序输出:
Value is B
While 循环
while 语句或循环在特定条件为真时连续执行语句块。while 语句继续检测表达式并执行代码块,直到表达式的计算结果为 false。
public class Mapull {
public static void main(String[] args){
int count = 1;
while (count < 5) {
System.out.println("Count is: " + count);
count++;
}
}
}
程序输出:
1
2
3
4
5
do-while 循环
do-while 和 while 的区别在于 do-while 在循环的底部而不是顶部计算其表达式。因此,do 块中的语句总是至少执行一次。
请注意 do-while 语句以分号结尾。条件表达式必须是布尔表达式。
int i = 1;
int sum = 0;
do {
sum = sum + i;
i++;
} while (i <= 10);
System.out.println(sum);
for 循环
for 语句迭代一系列值。它重复循环值,直到满足特定条件。
for(int num = 1; num <= 5; num++) {
System.out.println(num);
}
程序输出:
1
2
3
4
5
增强的for循环 for-each
Java 5 引入了一个 foreach 循环,称为增强的 for-each 循环。它用于迭代数组和集合的元素。
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
for(String item : items) {
System.out.println(item);
}
程序输出:
A
B
C
forEach 简写
Java 集合提供了 forEach 方法可以方便地对集合进行遍历。
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
// lambda 表达式写法
items.forEach(item->System.out.println(item));
// 方法引用写法
items.forEach(System.out::println);
程序输出:
A
B
C
A
B
C
tag 标签
Java 中有一个保留关键字 goto
,是参照了 c 语言的语法。虽然 Java 不能直接使用 goto 语句,但是有一种写法非常类似这种形式。
每当在程序执行期间,遇到标记的 break
语句时,控制立即离开封闭的标记块。同样,标记为 continue
将控制重新开始。就像在正常的 break 和 continue 语句中一样,为代码块提供了额外的名称。
public class Mapull {
public static void main(String[] args) {
loop: for(int i=0; i < 6; i++) {
if(i % 2 == 0) {
System.out.println("In if block :: " + i);
continue loop;
} else {
System.out.println("In else block :: " + i);
}
}
}
}
程序输出:
In if block :: 0
In else block :: 1
In if block :: 2
In else block :: 3
In if block :: 4
In else block :: 5
Java 提供这种写法,但是一般很少在开发中实际使用。