2015-11-30 25 views
0

我正在使用的代碼如下。如何計算一個for循環中具有多個數組的數組內數值的數量?

for(int i = 0; i < playerCount; i++) 
    { 
     j=0; 
     System.out.println(playerNames[i] + "'s turn!"); 

     while(userChoice != 2 && j < 5) 
     { 
      Die roll2 = new Die(); 
      roll2.roll(); 
      System.out.println(roll2); 

      diceArray[i][j] = roll2; 

      System.out.println("Again? 1= yes, 2=no"); 
      userChoice = scan.nextInt(); 
      j++; 

     } 

     if(userChoice == 2) 
     { 
      userChoice = 1; 


     } 


    } 

我想知道,我怎麼會添加一個計數器,看看有多少值是陣列的每一行中,這是一個二維數組,這將有一個未知的行數,並小於5列。 (可能是5,可能是1)。由於多行,我無法使用簡單的計數++來完成此操作。

任何人有任何提示嗎?

+1

'diceArray.length'將返回rows'的'的編號的數組中和'diceArray [0] .length'將返回columns'的'的數量與每行相關聯的值(數)我相信是你在找什麼。 – 3kings

+0

所以,如果我想保存這些值,我可以像int arrayLength = diceArray.length? –

+0

@ 3kings是正確的,但只使用'playerCount'作爲行可以節省調用'diceArray.length'所花費的時間。 –

回答

1

您可以使用array[i].length獲取二維數組中某一行的列數。例如:

for(int row=0; row < array.length; row++) { 
    System.out.println("Num Of Col for row " + row + ": " + array[row].length); 
} 
+0

謝謝!有沒有什麼辦法可以讓這個忽略空的條目?我必須設置一個列值超過0,所以我可以初始化二維數組? –

+0

@JonRoy在Java中,類型爲int的數組條目的默認值爲0.如果要修改值(不爲零),則需要編寫一個嵌套循環,該循環從「col = 0」變爲'array [row] .length',並修改'array [row] [col] = NEW_INT'的值 – CMPS

相關問題