本篇文章介绍了 Java 中的 unreachable statement 错误。
Java中出现 unreachable statement 错误的原因
当我们尝试在分支控制流语句之后放置语句时,会发生不可到达语句错误。 分支语句包括 break、continue 和 return,它们用于跳转到代码的不同部分。
这些语句通常包含在循环中以中断循环、跳过迭代或返回值。 当我们将代码语句紧跟在这些分支语句之后时,它会抛出编译错误 unreachable statements。
以下是使用 break、continue 和 return 语句的错误 unreachable statements 的示例:
使用 break
:
package jiyik;
public class Unreachable_Statement {
public static void main(String... args) {
int[] DemoArray = {350, 780, 300, 500, 120, 1024, 1350};
int DemoNumber = 1024;
for (int INTEGER : DemoArray) {
if (INTEGER == DemoNumber) {
break;
System.out.println("The number is: " + DemoNumber);
}
}
}
}
其输出是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at jiyik.Unreachable_Statement.main(Unreachable_Statement.java:12)
使用 continue
:
package jiyik;
public class Unreachable_Statement {
public static void main(String... args) {
int[] DemoArray = {350, 780, 300, 500, 120, 1024, 1350};
int DemoNumber = 1024;
for (int INTEGER : DemoArray) {
if (INTEGER == DemoNumber) {
continue;
System.out.println("The number is: " + DemoNumber);
}
}
}
}
其输出也将是相同的:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at jiyik.Unreachable_Statement.main(Unreachable_Statement.java:12)
使用 return
:
package jiyik;
public class Unreachable_Statement {
public static void main(String... args) {
int[] DemoArray = {350, 780, 300, 500, 120, 1024, 1350};
int DemoNumber = 1024;
for (int INTEGER : DemoArray) {
if (INTEGER == DemoNumber) {
return;
System.out.println("The number is: " + DemoNumber);
}
}
}
}
输出是:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable code
at jiyik.Unreachable_Statement.main(Unreachable_Statement.java:12)
解决Java中的 unreachable statement 错误
解决方案是避免在分支语句之后立即编写任何代码。 请参阅使用break语句引发的错误的代码解决方案:
package jiyik;
public class Unreachable_Statement {
public static void main(String... args) {
int[] DemoArray = {350, 780, 300, 500, 120, 1024, 1350};
int DemoNumber = 500;
boolean FoundNumber = false;
for (int INTEGER : DemoArray) {
if (INTEGER == DemoNumber) {
FoundNumber = true;
break;
}
}
if (FoundNumber) {
System.out.println("The number is: " + DemoNumber);
}
}
}
我们将该语句放在另一个 if 条件中。 该代码现在可以正常工作了。
查看输出:
The number is: 500
同样,我们可以为 continue
和 return
语句创建一个解决方案。 规则是不要在分支语句之后立即放置任何代码。