You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

代码提示unreachable code:判断数字含0终止方法遇不可达代码

嘿,我一眼就瞅出问题所在啦!这个「unreachable code」的提示完全是因为你代码里的一个小疏忽——if条件后面多写了分号;

问题根源拆解

你看这段代码:

if (dig1 == 0);{ 
    return; 
}

这里的分号;是个空语句,它会被当作if条件的执行体。也就是说,不管dig1是不是0,这个if的逻辑都已经“执行完毕”了。紧接着的{ return; }就变成了独立的代码块,不管前面的条件是否成立,这个return都会无条件执行

所以程序运行到第一个return就直接终止方法了,后面的if (dig2 == 0)及所有后续代码根本没机会被执行,IDE自然会提示「unreachable code」。

修正后的代码

只需要把每个if后面的分号删掉,让{ return; }成为if的执行体就行:

static void method(int y) {
    int dig1 = y % 10;
    int dig2 = y / 10 % 10;
    int dig3 = y / 100 % 10;

    if (dig1 == 0) { // 去掉多余的分号
        return;
    }
    if (dig2 == 0) { // 现在这段代码就能正常触发了
        return;
    }
    // ... 后续的位数判断逻辑
}

结合你的输入场景验证

你的输入范围是122-133:

  • 当传入130时,dig1 = 130 % 10 = 0,第一个if条件成立,执行return终止方法,完全符合你的需求。
  • 其他数字(比如122、133)的每一位都不为0,会依次跳过所有if判断,继续执行后续代码。

这样修改后,「unreachable code」的提示就会消失,逻辑也完全正确啦!

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

火山引擎 最新活动