Java 编译器按照从上到下的顺序执行代码,代码中的语句会按照它们出现的顺序执行。然而,Java也提供了控制流语句来控制程序的执行流程,这是Java的一个基本特性,它可以使程序流程更加灵活。

Java提供了三种类型的控制流语句:

  1. 条件语句:

    • if语句
    • switch语句
  2. 循环语句:

    • do-while循环
    • while循环
    • for循环
    • for-each循环
  3. 跳转语句:

    • break语句
    • continue语句

条件语句:

条件语句根据特定的条件决定执行哪个语句以及何时执行。条件语句会评估一个布尔表达式,并根据条件的结果来控制程序的流程。在Java中,有两种类型的条件语句,即if语句和switch语句。

1) if语句:

if语句用于在Java中进行条件评估,并根据条件的结果来决定程序的执行流程。if语句的条件表达式会返回一个布尔值,即true或false。在Java中,if语句有以下几种形式:

  1. 简单的if语句
  2. if-else语句
  3. if-else-if语句
  4. 嵌套的if语句

让我们逐个了解这些if语句的形式。

1) 简单的if语句:

简单的if语句是所有控制流语句中最基本的形式。它评估一个布尔表达式,并在表达式的结果为true时执行一段代码。下面给出了 if 语句的语法。

if(condition) {    
statement 1; //条件为真时执行 
}    

考虑以下示例,我们在 java 代码中使用了if语句。

Student.java

Student.java

public class Student {    
public static void main(String[] args) {    
int x = 10;    
int y = 12;    
if(x+y > 20) {    
System.out.println("x + y is greater than 20");    
}    
}      
}     

输出:

x + y 大于 20

2)if-else语句

if-else 语句是if 语句的扩展,它使用另一个代码块,即else 块。如果 if 块的条件被评估为 false,则执行 else 块。

句法:

if(condition) {    
statement 1;  //条件为真时执行  
}  
else{  
statement 2;  //条件为假时执行   
}  

考虑以下示例。

Student.java

public class Student {  
public static void main(String[] args) {  
int x = 10;  
int y = 12;  
if(x+y < 10) {  
System.out.println("x + y is less than      10");  
}   else {  
System.out.println("x + y is greater than 20");  
}  
}  
}  

输出:

x + y 大于 20

3)if-else-if阶梯:

if-else-if 语句包含一个 if 语句,后跟多个 else-if 语句。换句话说,我们可以说是 if-else 语句链创建了一个条件树,程序可以在其中进入条件为真的代码块。我们还可以在链的末尾定义一个 else 语句。

下面给出了 if-else-if 语句的语法。

if(condition 1) {    
statement 1; //条件1为真时执行   
}  
else if(condition 2) {  
statement 2; //条件2为真时执行  
}  
else {  
statement 2;  //当所有条件都为假时执行   
}  

考虑以下示例。

Student.java

public class Student {  
public static void main(String[] args) {  
String city = "Delhi";  
if(city == "Meerut") {  
System.out.println("city is meerut");  
}else if (city == "Noida") {  
System.out.println("city is noida");  
}else if(city == "Agra") {  
System.out.println("city is agra");  
}else {  
System.out.println(city);  
}  
}  
} 

输出:

Delhi

4.嵌套if语句

在嵌套的 if 语句中,if 语句可以在另一个 if 或 else-if 语句中包含一个ifif-else语句。

下面给出了嵌套 if 语句的语法。

if(condition 1) {    
statement 1; //条件1为真时执行  
if(condition 2) {  
statement 2; //条件2为真时执行  
}  
else{  
statement 2;  //条件2为假时执行
}  
}  

考虑以下示例。

Student.java

public class Student {    
public static void main(String[] args) {    
String address = "Delhi, India";    
    
if(address.endsWith("India")) {    
if(address.contains("Meerut")) {    
System.out.println("Your city is Meerut");    
}else if(address.contains("Noida")) {    
System.out.println("Your city is Noida");    
}else {    
System.out.println(address.split(",")[0]);    
}    
}else {    
System.out.println("You are not living in India");    
}    
}    
}    

输出:

Delhi

开关语句:

在Java中,switch语句类似于if-else-if语句。它包含多个代码块,称为case块,并且根据正在切换的变量的值执行相应的case块。相比于if-else-if语句,switch语句更易于使用,并且可以提高程序的可读性。

在使用switch语句时需要注意以下几点:

  • case的变量可以是int、short、byte、char或枚举类型。从Java 7开始,还支持字符串类型。
  • case块不能重复。
  • 当没有任何case与表达式的值匹配时,将执行默认语句。默认语句是可选的。
  • 当满足条件时,使用break语句来终止switch块的执行。break语句是可选的,如果省略,将继续执行下一个case块。
  • 在使用switch语句时,我们必须注意case表达式的类型必须与变量的类型相同,或者是一个常量值。

下面给出了使用 switch 语句的语法。

switch (expression){  
    case value1:  
     statement1;  
     break;  
    .  
    .  
    .  
    case valueN:  
     statementN;  
     break;  
    default:  
     default statement;  
}  

考虑以下示例以了解 switch 语句的流程。

Student.java

public class Student implements Cloneable {  
public static void main(String[] args) {  
int num = 2;  
switch (num){  
case 0:  
System.out.println("number is 0");  
break;  
case 1:  
System.out.println("number is 1");  
break;  
default:  
System.out.println(num);  
}  
}  
}  

输出:

2

在使用 switch 语句时,我们必须注意 case 表达式与变量的类型相同。但是,它也将是一个常数值。该开关仅允许使用 int、string 和 Enum 类型的变量。

循环语句

在编程中,有时我们需要在某些条件评估为真时重复执行一组代码。为了实现这种重复执行,我们可以使用循环语句。循环语句允许我们按照特定的条件以顺序方式重复执行一组指令。

在Java中,我们有三种常用的循环语句,它们的语法和条件检查的时间略有不同:

  1. for循环:for循环在执行之前会先检查条件,然后根据条件的真假决定是否执行循环体。可以在循环开始之前定义一个计数器,并在每次迭代时更新计数器的值。
  2. while循环:while循环在执行之前先检查条件,只有当条件为真时才会执行循环体。循环体执行完毕后,会再次检查条件,如果条件仍然为真,则继续执行循环体,直到条件为假才停止。
  3. do-while循环:do-while循环首先执行循环体,然后再检查条件。只有当条件为真时,才会继续执行下一次循环。即使条件一开始就为假,循环体也会至少执行一次。

让我们逐个理解这些循环语句的用法和语法。

Java for 循环

在 Java 中,for 循环类似于C和C++。它使我们能够在一行代码中初始化循环变量、检查条件和递增/递减。只有当我们确切知道要执行代码块的次数时,我们才使用 for 循环。

for(initialization, condition, increment/decrement) {    
//语句块     
}    

for 循环的流程图如下所示。

1.png

考虑以下示例以了解 java 中 for 循环的正确功能。

Calculation.java

public class Calculattion {  
public static void main(String[] args) {  
int sum = 0;  
for(int j = 1; j<=10; j++) {  
sum = sum + j;  
}  
System.out.println("前10个自然数之和为" + sum);  
}  
}  

输出:

前10个自然数之和为55

Java for-each 循环

Java 提供了一种增强的 for 循环来遍历数组或集合等数据结构。在 for-each 循环中,我们不需要更新循环变量。下面给出了在 Java 中使用 for-each 循环的语法。

for(data_type var : array_name/collection_name){    
//语句   
}   

考虑以下示例以了解 Java 中 for-each 循环的功能。

Calculation.java

public class Calculation {    
public static void main(String[] args) {     
String[] names = {"Java","C","C++","Python","JavaScript"};    
System.out.println("打印数组名称的内容:\n");    
for(String name:names) {    
System.out.println(name);    
}    
}    
}    

输出:

打印数组名称的内容:

Java
C
C++
Python
JavaScript

Java while 循环

当我们需要多次迭代一组语句时,我们可以使用while循环。与for循环不同,while循环不包含在循环语句内的初始化和递增/递减部分。

while循环通常在我们事先不知道迭代次数的情况下使用。它被称为"入口控制循环",因为它在循环开始时检查条件。如果条件为真,则执行循环体;否则,跳过循环并执行循环之后的语句。

while 循环的语法如下所示。

while(condition){    
//循环语句  
}    

while 循环的流程图如下图所示。

2.png

考虑以下示例。

计算.java

public class Calculation {    
public static void main(String[] args) {       
int i = 0;    
System.out.println("打印前 10 个偶数的列表 \n");    
while(i<=10) {    
System.out.println(i);    
i = i + 2;    
}    
}    
}    

输出:

打印前 10 个偶数的列表

0
2
4
6
8
10

Java do-while 循环

do-while 循环在执行循环语句后检查循环结束时的条件。当迭代次数未知且我们必须至少执行一次循环时,我们可以使用 do-while 循环。

它也被称为退出控制循环,因为没有提前检查条件。下面给出了 do-while 循环的语法。

do     
{    
//语句   
} while (condition);  

do-while 循环的流程图如下图所示。

3.png

考虑以下示例以了解 Java 中 do-while 循环的功能。

Calculation.java

public class Calculation {    
public static void main(String[] args) {     
int i = 0;    
System.out.println("打印前10个偶数的列表 \n");    
do {    
System.out.println(i);    
i = i + 2;    
}while(i<=10);    
}    
}    

输出:

打印前10个偶数的列表
0
2
4
6
8
10

跳转语句

跳转语句用于将程序的控制权转移到代码的特定位置。换句话说,跳转语句可以改变程序的执行流程,使其跳转到程序的其他部分。在 Java 中,我们有两种跳转语句:break 和 continue。

Java 中的 break 语句

顾名思义,break 语句用于中断当前的程序流程,并将控制转移到循环或 switch 语句之外的下一条语句。然而,在嵌套循环的情况下,它只会中断当前内部循环,而不是外部循环。

break 语句不能单独使用,它只能在循环或 switch 语句内部使用。

示例:使用 for 循环和 break 语句

考虑以下示例,我们在 for 循环中使用了 break 语句:

BreakExample.java

public class BreakExample {  
  
public static void main(String[] args) {  
for(int i = 0; i<= 10; i++) {  
System.out.println(i);  
if(i==6) {  
break;  
}  
}  
}  
}  

输出:

0
1
2
3
4
5
6

带有标记的 for 循环的 break 语句示例

Calculation.java

public class Calculation {    
    
public static void main(String[] args) {       
a:    
for(int i = 0; i<= 10; i++) {    
b:    
for(int j = 0; j<=15;j++) {    
c:    
for (int k = 0; k<=20; k++) {    
System.out.println(k);    
if(k==5) {    
break a;    
}    
}    
}       
}    
}       
}    

输出:

0
1
2
3
4
5

Java 继续语句

与 break 语句不同,continue 语句不会中断循环,而是跳过循环的特定部分并立即跳转到循环的下一次迭代。

考虑以下示例以了解 Java 中 continue 语句的功能。

public class ContinueExample {  
  
public static void main(String[] args) {  
  
for(int i = 0; i<= 2; i++) {  
  
for (int j = i; j<=5; j++) {  
  
if(j == 4) {  
continue;  
}  
System.out.println(j);  
}  
}  
}  
}  

输出:

0
1
2
3
5
1
2
3
5
2
3
5

标签: java, Java面试题, Java下载, java教程, java技术, Java学习, Java学习教程, Java语言, Java开发, Java入门教程, Java进阶教程, Java高级教程, Java笔试题, Java编程思想