在 Java 中继续声明
Continue statement in Java
我添加了一个 continue 语句来结束当前迭代,这样循环体中的其余语句就不会被执行。
public class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
while (number < 20) {
number++;
if (number == 10 || number == 11)
continue;
sum += number;
}
System.out.println(sum);
}
}
我不明白的是为什么我添加 {}
会出错?
public class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
while (number < 20) {
number++;
if (number == 10 || number == 11) {
continue;
sum += number;
}
}
System.out.println(sum);
}
}
错误
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at Main.main(Main.java:18)
这行得通。
if (number == 10 || number == 11) {
continue;
}
sum += number;
说明
如果您不将 {}
添加到 if
语句中,则只会考虑下一行。因此,您需要将 sum += number
留在 之外 {}
因为 continue 语句在您的分支中是最终语句(在 {} 之间),所以下一条语句 (sum += number) 永远不会执行。你的 IDE 必须警告你,这就是为什么它没有编译它并且你得到错误。
在你的第一个块中,没有 {
的那个你有效地写了:
if (number == 10 || number == 11) {
continue;
}
sum += number;
sum += number
是可达的,只要表达式是false
.
在第二个你实际上写了:
if (number == 10 || number == 11) {
continue;
sum += number;
}
sum += number
;已经变得不可访问,因为如果表达式是 true
,它总是会被跳过,因为 continue
,如果表达式是 false
,它不会被执行,因为它不在块语句中.
正如其他答案所说的那样,只有第一行代码会在 if 语句之后 运行。但是,另一个规则是您不能在 if 语句中的 "continue" 语句之后添加更多代码行。所以,这确实是错误。如果您要调整代码以使用 continue 切换 "sum += number;",您将不会收到相同的错误。希望这有帮助。
您在 if-block:
的大括号 ({}
) 内执行 sum += number;
if (number == 10 || number == 11) {
continue;
sum += number;
}
这会起作用:
if (number == 10 || number == 11) {
continue;
}
sum += number;
我添加了一个 continue 语句来结束当前迭代,这样循环体中的其余语句就不会被执行。
public class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
while (number < 20) {
number++;
if (number == 10 || number == 11)
continue;
sum += number;
}
System.out.println(sum);
}
}
我不明白的是为什么我添加 {}
会出错?
public class Main {
public static void main(String[] args) {
int sum = 0;
int number = 0;
while (number < 20) {
number++;
if (number == 10 || number == 11) {
continue;
sum += number;
}
}
System.out.println(sum);
}
}
错误
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at Main.main(Main.java:18)
这行得通。
if (number == 10 || number == 11) {
continue;
}
sum += number;
说明
如果您不将 {}
添加到 if
语句中,则只会考虑下一行。因此,您需要将 sum += number
留在 之外 {}
因为 continue 语句在您的分支中是最终语句(在 {} 之间),所以下一条语句 (sum += number) 永远不会执行。你的 IDE 必须警告你,这就是为什么它没有编译它并且你得到错误。
在你的第一个块中,没有 {
的那个你有效地写了:
if (number == 10 || number == 11) {
continue;
}
sum += number;
sum += number
是可达的,只要表达式是false
.
在第二个你实际上写了:
if (number == 10 || number == 11) {
continue;
sum += number;
}
sum += number
;已经变得不可访问,因为如果表达式是 true
,它总是会被跳过,因为 continue
,如果表达式是 false
,它不会被执行,因为它不在块语句中.
正如其他答案所说的那样,只有第一行代码会在 if 语句之后 运行。但是,另一个规则是您不能在 if 语句中的 "continue" 语句之后添加更多代码行。所以,这确实是错误。如果您要调整代码以使用 continue 切换 "sum += number;",您将不会收到相同的错误。希望这有帮助。
您在 if-block:
的大括号 ({}
) 内执行 sum += number;
if (number == 10 || number == 11) {
continue;
sum += number;
}
这会起作用:
if (number == 10 || number == 11) {
continue;
}
sum += number;