Skip to content

<span style="color: red;font-size: 20;">return: 无论是否嵌套什么循环,直接返回到方法调用处,返回一个值或终止方法的执行</span> <span style="color: red;font-size: 20;">continue:在循环中跳过当前迭代并继续下一次迭代</span> <span style="color: red;font-size: 20;">break:当在嵌套循环中使用 break 时,它将仅终止包含它的最内层循环,而不会影响外部循环的执行。</span> <span style="color: red;font-size: 20;">finally:非极端情况下必然执行</span> default

//终止程序方法1:给指定循环命名并定向break
loop:while(true){} break loop;
//终止程序方法2:使用exit()来语句停止虚拟机运行
//System.exit(0)

1.return

return 语句在Java中用于从方法中返回一个值终止方法的执行。下面是 return 语句的一些关键点:

1. 返回值类型:

如果方法有返回值,return 语句必须返回与方法声明中指定的返回值类型兼容的值。例如,如果方法声明为 int 类型的返回值,那么 return 语句应返回一个整数值。

2. 返回值表达式:

return 语句可以包含一个表达式,该表达式的结果将作为方法的返回值。

例如:
java
public int add(int a, int b) {
    return a + b;
}

3. 方法的终止:

return 语句终止了当前方法的执行,不再执行后续的代码。方法可以有多个 return 语句,但只有一个会被执行,即取决于在运行时满足的条件。 在Java中,如果在循环中执行 return 语句,它会立即终止当前方法的执行,不论该 return 语句在哪个循环内部执行。这意味着,如果你在一个嵌套的循环中执行 return,它将跳出所有嵌套的循环,并返回到调用方法的地方。

例如
java
public class Main {
    public static void main(String[] args) {
        outerLoop: // 标记外部循环
        for (int i = 1; i &lt;= 3; i++) {
            innerLoop: // 标记内部循环
            for (int j = 1; j &lt;= 3; j++) {
                if (i * j == 6) {
                    System.out.println("Breaking the loops");
                    return; // 在此处执行return,将终止所有循环
                }
                System.out.println(i + " * " + j + " = " + (i * j));
            }
        }
        System.out.println("End of program");
    }
}

4. 无返回值方法:

如果方法声明为 void,则可以使用 return 语句来提前结束方法的执行,但不返回任何值。

例如:
java
public void printMessage() {
    System.out.println("Hello, World!");
    return; // 提前结束方法的执行
}

5. return 的条件:

return 语句的执行可以依赖于条件。例如,可以在条件语句中使用 return 来根据不同的条件返回不同的值。

6. 返回对象:

return 语句可以用于返回对象的引用,例如返回一个类的实例。

2.continue

continue 语句是Java中的一个控制语句,用于在循环中跳过当前迭代并继续下一次迭代。它通常用于循环结构(例如 forwhiledo-while)中。

以下是 continue 语句的一些关键点:

1. 跳过当前迭代:

continue 语句执行时,它会立即终止当前循环迭代的执行,并继续下一次迭代。

2. 在循环内使用:

continue 语句通常在循环体内部使用,根据特定条件来控制是否跳过当前迭代。

3. 适用于不同类型的循环:

你可以在 forwhiledo-while 等各种循环结构中使用 continue 语句。

4. 示例:

1.在 for 循环中使用 continue
java
for (int i = 1; i &lt;= 5; i++) {
    if (i == 3) {
        continue; // 当 i 等于 3 时,跳过当前迭代
    }
    System.out.println("i = " + i);
}
2.在 while 循环中使用 continue
java
int i = 1;
while (i &lt;= 5) {
    if (i == 3) {
        i++;
        continue; // 当 i 等于 3 时,跳过当前迭代
    }
    System.out.println("i = " + i);
    i++;
}

5.注意事项:

  • continue 语句只跳过当前迭代,不会结束整个循环。
  • 如果在某些情况下不小心使用 continue,可能会导致无限循环或意外的结果。因此,在使用时要小心谨慎。

3.break

break 是 Java 中的一个控制语句,用于在循环或开关语句(switch)中终止当前的循环或开关块的执行。以下是 break 语句的一些关键点:

1. 在循环中使用:

break 通常在循环体内部使用,当特定条件满足时,它会立即终止当前循环的执行。

2. 在开关语句中使用:

break 也可用于 switch 语句中,用于终止 switch 块的执行,通常用于跳出 switch 后的代码块。

3. 跳出最内层循环:

当在嵌套循环中使用 break 时,它将==仅==终止包含它的最内层循环,而不会影响外部循环的执行

4. 示例:

1.在 for 循环中使用 break
java
for (int i = 1; i &lt;= 5; i++) {
    if (i == 3) {
        break; // 当 i 等于 3 时,终止循环
    }
    System.out.println("i = " + i);
}
2.在 while 循环中使用 break
java
int i = 1;
while (i &lt;= 5) {
    if (i == 3) {
        break; // 当 i 等于 3 时,终止循环
    }
    System.out.println("i = " + i);
    i++;
}
3.在开关语句中使用 break
java
int choice = 2;
switch (choice) {
    case 1:
        System.out.println("选择了 1");
        break;
    case 2:
        System.out.println("选择了 2");
        break; // 终止 switch 块的执行
    case 3:
        System.out.println("选择了 3");
        break;
    default:
        System.out.println("未知选择");
}

注意事项:

  • break 语句终止的是包含它的最内层循环或 switch 块的执行。
  • 在循环中,如果使用 break,请确保它的使用逻辑是正确的,以避免导致意外的程序行为。

4.finally

finally 是 Java 中的关键字,用于定义在异常处理中的一个代码块。finally 块中的代码总是会被执行,无论是否发生异常,以及是否有 catch 块来捕获异常。它通常用于执行一些必须在方法结束时进行的清理工作,例如关闭文件、释放资源等。

finally 语法结构如下

java
try {
    // 可能会抛出异常的代码块
} catch (ExceptionType e) {
    // 异常处理代码
} finally {
    // 总是会执行的代码块
}

finally 块中的代码会在 try 块中的代码执行后,无论是否发生异常都会执行。如果异常被捕获并处理,catch 块会在 finally 之前执行,然后 finally 会执行。

finally 的主要作用是确保某些操作无论是否发生异常都能得到执行,这样可以保证资源的正确释放或清理工作的完成,从而避免资源泄漏等问题。

finally不执行情况

  1. ==当在执行 finally 代码块之前 JVM 被强制退出==:例如,如果使用 System.exit() 终止 JVM 执行,那么 finally 块将不会执行。

  2. ==当在 finally 代码块中发生了一个无限循环或死锁==:如果 finally 块本身包含了一个无限循环或死锁,那么它可能永远不会执行完毕。

  3. ==当电源故障或硬件故障导致 JVM 非正常关闭==:如果 JVM 非正常关闭,例如由于硬件故障或系统崩溃,finally 块可能不会执行。

  4. ==当程序被操作系统强制终止==:如果操作系统强制终止了 Java 程序,例如通过任务管理器或类似的工具,finally 块可能不会执行。

总之,finally 块的主要目的是确保在正常或异常情况下都执行某些代码,但在极端情况下,如 JVM 非正常关闭或无法执行 finally 块中的代码,它可能不会执行。因此,在编写程序时,应谨慎处理可能导致 finally 不执行的情况,以确保程序的正确性和稳定性。

评论区

欢迎留言、补充或勘误。

xiaoba.blog