Java流程控制

目录

一、顺序结构

二、选择结构

1. if -else结构:

2. switch-case结构:

三、循环结构

1. while循环

2. do-while循环

3. for循环

4. 增强的for循环

四、跳转语句

1. break 语句:

2. continue 语句:

3. return 语句:


流程控制是指在程序运行时,控制各个语句或代码块执行顺序的机制。通过流程控制,程序可以根据不同的条件执行不同的代码路径,从而实现复杂的逻辑和功能。Java中的流程控制主要分为三种基本结构:顺序结构、选择结构和循环结构。

一、顺序结构

顺序结构是最基本的流程控制方式,程序按照语句出现的先后顺序依次执行。

 public class Demo {
     public static void main(String[] args) {
         System.out.println("语句1");
         System.out.println("语句2");
         System.out.println("语句3");
     }
 }

在本例中,程序会按照从上到下的顺序依次输出“语句1”、“语句2”和“语句3”。

二、选择结构

选择结构也称为分支结构,用于根据特定条件执行不同的代码块。Java 中主要有if-else 语句、switch-case 语句等。

1. if -else结构:

  • 单分支结构:只有if语句,如果条件为真,则执行if块中的代码。

  • 双分支结构:包含ifelse语句,如果条件为真,则执行if块中的代码;否则执行else块中的代码。

  • 多分支结构:使用多个else if语句,根据不同的条件执行不同的代码块。

 public class Demo {
     public static void main(String[] args) {
         int number = 10;
         if (number > 0) {
             System.out.println("正数");  //输出:正数
         } else if (number < 0) {
             System.out.println("负数");
         } else {
             System.out.println("零");
         }
     }
 }

注意:

  • if语句后的括号内必须包含一个布尔表达式,该表达式的结果必须为truefalse

  • 如果存在else语句,它必须紧跟在所有else if语句之后,最多只能有一个else语句。

  • 可以有多个else if语句,但它们必须在else语句之前。

  • 一旦某个else if条件为真,后续的else ifelse语句将被跳过。

2. switch-case结构:

用于处理多分支情况,根据表达式的值选择执行不同的代码块。

 public class Demo {
     public static void main(String[] args) {
         int day = 3;
         switch (day) {
             case 1:
                 System.out.println("星期一");
                 break;
             case 2:
                 System.out.println("星期二");
                 break;
             case 3:
                 System.out.println("星期三");  //输出:星期三
                 break;
             default:
                 System.out.println("其他");
         }
     }
 }

注意:

  • switch语句中的表达式数据类型必须是以下几种之一:byte、short、int、char、String(JDK7以后)或enum(JDK5以后)。

  • case标签后面的值必须是常量,不能是变量,多个case标签后面的值不能重复,否则会导致编译错误。

  • break语句用于在执行完一个case后跳出switch语句,如果没有使用break语句,程序将继续执行后续的case语句,直到遇到break语句或switch块结束,这种现象称为“fall-through”。

  • default标签是可选的,但建议包含,以处理所有未匹配的case情况,default标签可以放在switch语句的任意位置,但通常放在最后。

三、循环结构

循环结构用于重复执行一段代码,直到不再满足特定条件为止。Java提供了多种循环结构,包括while循环、do-while循环和for循环。

1. while循环

在条件为真时重复执行循环体(一般用于不知道具体要循环多少次的情况)。

 public class Demo {
     public static void main(String[] args) {
         int i = 0;
         while (i < 5) {
             System.out.print(i);  // 输出:01234
             i++;
         }
     }
 }

2. do-while循环

至少执行一次循环体后判断条件。

 public class Demo {
     public static void main(String[] args) {
         int i = 0;
         do {
             i++;  // i=1
             System.out.println(i);  // 输出:1
         } while (i > 1);  // i>1不成立
     }
 }

3. for循环

功能强大,使用最广泛,包含初始化、终止和迭代三个部分(一般用于知道具体要循环多少次的情况)。

 public class Demo {
     public static void main(String[] args) {
         for (int i = 0; i < 5; i++) {
             System.out.print(i);  //输出:01234
         }
     }
 }

在本例中,i = 0是初始化,i < 5是终止条件,i++是迭代过程。

4. 增强的for循环

增强的for循环(也称为"for-each循环")是Java 5及更高版本中引入的一种简化数组和集合遍历的语法。它使得遍历数组或集合中的元素变得更加简洁和直观,而不需要使用索引或迭代器,特别适用于遍历数组或实现了Iterable接口的对象(如List、Set等集合)。

(1)语法结构:

 for (元素类型 变量名 : 数组或集合) {
     // 循环体内的代码,对变量名所代表的当前元素进行操作
 }
  • 元素类型:指定集合或数组中元素的数据类型。

  • 变量名:在每次迭代中代表当前元素的变量名。

  • 数组或集合:要遍历的数组或实现了Iterable接口的集合对象。

(2)示例:

  • 遍历数组

 public class Demo {
     public static void main(String[] args) {
         int[] numbers = {1, 2, 3, 4, 5};
         for (int number : numbers) {
             System.out.print(number);  //输出:12345
         }
     }
 }
  • 遍历集合

 import java.util.Arrays;
 import java.util.List;
 ​
 public class Demo {
     public static void main(String[] args) {
         List names = Arrays.asList("A", "B", "C");
         for (String name : names) {
             System.out.print(name);  //输出:ABC
         }
     }
 }
  • 遍历二维数组

虽然增强的for循环不能直接遍历二维数组,但可以通过嵌套的增强for循环实现:

 public class Demo {
     public static void main(String[] args) {
         int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
         for (int[] row : matrix) {
             for (int num : row) {
                 System.out.print(num);  //输出:123456789
             }
         }
     }
 }

四、跳转语句

Java中的跳转语句是控制程序流程的关键工具,允许程序跳过特定的语句或循环。Java主要支持三种跳转语句:breakcontinuereturn

1. break 语句:

break语句被用于提前退出循环或switch语句。当程序执行到break时,它会立即终止所在的最内层循环或switch语句,并跳转到该循环或语句之后的代码继续执行。

 public class Demo {
     public static void main(String[] args) {
         for (int i = 1; i < 10; i++) {
             if (i == 5) {
                 break;  // 当i等于5时,跳出循环
             }
             System.out.print(i);  // 输出:1234
         }
     }
 }

2. continue 语句:

continue语句用于跳过当前循环的剩余部分,并直接进入下一次循环迭代。与break不同,continue不会终止整个循环,而只是跳过当前迭代中的剩余代码。

 public class Demo {
     public static void main(String[] args) {
         for (int i = 0; i < 10; i++) {
             if (i % 2 == 0) {
                 continue; // 跳过偶数
             }
             System.out.print(i); // 输出:13579
         }
     }
 }

3. return 语句:

return语句用于从方法中返回值并立即退出该方法。在void类型的方法中,return语句可以单独使用,表示方法的结束。对于非void类型的方法,return语句必须带有一个与方法返回类型相匹配的表达式。

 public class Demo {
     public static void main(String[] args) {
         int sum = add(1, 2);  //用sum接收add的return值
         System.out.println(sum);  // 输出:3
     }
 ​
     public static int add(int a, int b) {
         return a + b;  // 返回两个整数的和
     }
 }

你可能感兴趣的:(Java,java,开发语言,intellij-idea)