在使用 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++
之前退出循环。有三种不同的可能流:
- 您不会进入循环(只是理论上的 - 在您的情况下,您进入)。
- 您输入并且条件为真 - 如果阻止,请立即返回。
- 您输入并且条件为假 - 立即返回 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";