2017-01-26 83 views
-1

使用eclipse編碼時,代碼i ++顯示爲無效代碼。那是什麼意思?爲什麼它是一個死代碼?爲什麼在下面的代碼片段中,「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"; 
    } 
} 
+8

因爲return會在第一次迭代時打破循環 –

回答

0

循環的第一次迭代將返回一個值,該值從方法中斷開。因此,增量永遠不會發生。

這個循環是等同於它的第一次迭代:

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"; 
3

在所有可能的流程在執行該i++之前退出循環。有三種不同的可能流:

  1. 你不進入循環(只是理論上 - 你的情況,你進入)。
  2. 您輸入並且條件爲真 - 立即返回if塊。
  3. 您輸入並且條件爲false - 立即返回到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已經察覺到而已。