You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java代码运行报错unreachable statement,请求解析报错逻辑

为什么continue后的语句会触发「不可达语句」错误?

先看你贴的代码:

for (int i = 0; i < 10; i++) {
    continue;
    System.out.println(i);
}

对应的编译错误:

source_file.java:15: error: unreachable statement
System.out.println(i);}
^
1 error

背后的逻辑其实很直白:

  • continue在循环里的作用是立刻终止当前这一轮循环的执行,直接跳回循环的条件判断环节,准备下一次迭代。
  • 你这段代码里,continue是无条件执行的——每次进入循环体,第一行就触发continue,后面的System.out.println(i)根本没有任何机会被运行到,不管循环跑多少次都是如此。
  • Java编译器会做代码可达性检查,它能精准识别这种「永远不可能被执行的无效代码」,直接抛出编译错误,毕竟写了一段永远跑不起来的代码,要么是笔误,要么是逻辑漏洞,编译器帮你提前揪出来。

举个反例,要是把continue放在条件判断里,让它只有满足特定条件才执行,那后面的语句就有机会被运行,编译器就不会报错:

for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) { // 只有偶数时才跳过打印
        continue;
    }
    System.out.println(i); // 这里会打印1、3、5、7、9,是可达的
}

内容的提问来源于stack exchange,提问作者Hazel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 17:22:09