# Java 控制流语句

> 原文： [https://howtodoinjava.com/java/basics/control-flow-statements/](https://howtodoinjava.com/java/basics/control-flow-statements/)

Java 应用程序代码通常按代码出现的顺序从上到下顺序执行。 要应用业务逻辑，我们可能需要有条件地执行代码。 **控制流语句**有助于有条件地执行代码块。

所有控制流语句都与业务条件相关联 – 当**为真**时，代码块将执行； 当**为假**时将被跳过。

Java 支持以下**控制语句**。

## 1\. `If-else`语句

`If-else`语句仅在特定测试求值为`true`时，才告诉程序执行代码的特定部分，否则执行`else`块。

我们可以嵌套`if-else`块。

```java
public class JavaExample 
{
	public static void main(String[] args) 
	{
		boolean condition = true;

		if(condition) {
			System.out.println("Condition is true");
		} 
		else 
		{
			System.out.println("Condition is false");
		}
	}
}

```

程序输出。

```java
Condition is true

```

> 阅读更多： [Java `if-else`语句](https://howtodoinjava.com/java/basics/if-else-statement-in-java/)

## 2\. `switch`语句

正如`if-else`语句告诉您的程序仅在特定测试的结果为`true`或`false`时才执行代码的特定部分，所以`switch`语句可以具有**多个执行路径**。

`switch`适用于`byte`，`short`，`char`和`int`基本数据类型。 它还适用于枚举类型，`String`类以及一些包装某些基本类型的特殊类：`Character`，`Byte`，`Short`和`Integer`。 （在 Java 5 中添加了枚举，在 Java 7 中添加了`String`类）。

```java
public class JavaExample 
{
	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;
		}
	}
}

```

程序输出：

```java
Value is B

```

> 阅读更多： [Java `switch`语句](https://howtodoinjava.com/java/basics/switch-statement-in-java/)

## 3\. `While`循环

`while`语句或循环在特定条件为`true`时连续执行语句块。`while`语句继续测试表达式并执行其块，直到表达式的计算结果为`false`。

```java
public class JavaExample 
{
    public static void main(String[] args)
    {
        int count = 1;
        while (count < 5) 
        {
            System.out.println("Count is: " + count);
            count++;
        }
    }
}

```

程序输出：

```java
1
2
3
4
5

```

> 阅读更多： [Java `while`循环语句](https://howtodoinjava.com/java/basics/while-loop-in-java/)

## 4\. `do-while`循环

`do-while`和`while`之间的区别在于`do-while`在循环的底部而不是顶部求值其表达式。 因此，`do`块中的语句始终至少执行一次。

请注意，`do-while`语句以分号结尾。 条件表达式必须是布尔表达式。

```java
int i = 1;
int sum = 0;

do 
{
    sum = sum + i;
    i++;
}
while (i <= 10);

System.out.println(sum);

```

程序输出：

```java
55

```

> 阅读更多： [Java `do-while`循环语句](https://howtodoinjava.com/java/basics/do-while-loop-in-java/)

## 5\. `for`循环

`for`语句在一系列值上进行迭代。 它反复遍历值，直到满足特定条件为止。

```java
for(int num = 1; num <= 5; num++)
{

     System.out.println(num);

}

```

程序输出：

```java
1
2
3
4
5

```

> 阅读更多： [Java `for`循环语句](https://howtodoinjava.com/java/basics/for-loop-in-java/)

## 6\. 增强的`foreach`循环

Java 5 引入了`foreach`循环，称为增强的`for-each`循环。 它用于遍历数组和集合的元素。

```java
int[] numList = {10, 20, 30, 40};

for(int num : numList) 
{
    System.out.println(num);
}

```

程序输出：

```java
10
20
30
40

```

> 阅读更多： [Java `for-each`语句](https://howtodoinjava.com/java/basics/enhanced-for-each-loop-in-java/)

## 7\. 标签语句

每当在程序执行过程中，遇到带标签的`break`语句，该控制都会立即退出封闭的带标签的块。 同样，带标签的`continue`将使控制重新开始。 就像在普通的`break`和`continue`语句中一样，为块赋予了其他名称。

```java
public class JavaExample 
{
	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);
			}
		}
	}
}

```

程序输出：

```java
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 标签语句](https://howtodoinjava.com/java/basics/labeled-statements-in-java/)

学习愉快！

参考： [Java 文档](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/flow.html)