2015-09-01 24 views
-1

有問題的行是與評論x doesn't change。預期的結果是打印所有可能的牌組。爲什麼X在代碼的第11行沒有改變?任何建議

public class deal { 

    public static void main(String[]args) { 

     String[] numbers ={"1","2","3","4","5","6","7","8","9","10","J","Q","K","A"}; 
     String[] color = {"Hearts","Spades","Diamonds","Clubs"}; 

     String[] deck =new String[color.length * numbers.length]; 
     for(int x =0;x<color.length;x++) 
      for(int y=0;y<numbers.length;y++) { 
       deck[numbers.length*x+y] = numbers[y]+ " of " + color[x];//X doesn't change 
       System.out.println(deck[y]); 
      }   
    }  
} 
+6

爲什麼要'x'改變?沒有分配給它。 (但是每次內循環完成後,每增加14次迭代,它就會增加) – Thilo

+3

對於內循環中的每個「y」循環,都會保留相同的「x」值 –

+0

直到inner for循環完成,X纔會改變。 –

回答

1

x正在改變。你只是打印錯誤的數組元素。嘗試:

System.out.println(deck[numbers.length*x+y]); 

替代,你可以在以後打印陣列那樣:

for(int i=0; i<numbers.length * color.length; i++) { 
    System.out.println(deck[i]); 
} 

或者你當然可以這樣做i < 56

+0

謝謝你的工作! – Lazlow

0

在嵌套循環中,外部循環計數器的值對於內部循環的所有交互都保持不變。 因此對於x = 0Y0變爲numbers.lenght。然後x = 1等等。

相關問題