为什么"i++"在下面的代码片段中是死代码?



在使用 eclipse 编码时,代码 i++ 显示为死代码。那是什么意思?为什么它是一个死代码?

public class ScoreCalculator{
public static void main(String[] args) {
        int ScoreCard[] = {70,102,198, 60};
        String PlayersList[] = {"Mukesh","Suresh","Shardul","Nandan"};
        System.out.println(DisplayScore(ScoreCard, PlayersList));
    }
    public static String DisplayScore(int[] Scores, String[] Players){
        for( int i=0; i <= 3; i++){
            if(Scores[i]>100 && Scores[i]<=200){
                System.out.println("n******Players who moved to next level******");
                return Players[i] + "n";
            }
            else
            {
                System.out.println("n******Players in Danger Level******");
                return Players[i] + "n";
            }
        }
        return "n";
    }
}

在所有可能的流中,您在执行该i++之前退出循环。有三种不同的可能流:

  1. 您不会进入循环(只是理论上的 - 在您的情况下,您进入)。
  2. 您输入并且条件为真 - 如果阻止,请立即返回。
  3. 您输入并且条件为假 - 立即返回 else 块。

在所有情况下,您都不会完成单个循环,因此每次迭代后计算的代码都无法访问。

for循环的工作原理如下:

for (A; B; C)
    ^^ - executes before the loop starts (before first iteration
        ^^ - is evaluated before each iteration
           ^^ is evaluated after each full iteration, so is executed in case the loop executes
              at least once

就个人而言,我对 IDE 发现它印象深刻。

循环的第一次迭代将返回一个值,脱离方法。因此,增量永远不会发生。

此循环等效于它的第一次迭代:

if(Scores[0]>100 && Scores[0]<=200){
    System.out.println("n******Players who moved to next level******");
} else {
    System.out.println("n******Players in Danger Level******");
}
return Players[0] + "n";

相关内容

  • 没有找到相关文章

最新更新