2015-11-30 26 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

相关问题