2011-11-13 21 views
1

質問このラインでは特に解決できないようです。私はそれを探しました。 割り当ては、野球選手のシャツ番号、打率の平均、歩数をアプリケーションに実装することです。 20列と3行の2次元配列を使用する必要があります。 私は、バットでのプレイヤーの回数と結果の乱数を作るためにラインを設定しています。しかしintからintに変換できないというエラーが出ます。 私は同じ問題を抱えたいくつかの他の質問を読んだが、誰も私を助けてくれないようだ。私はそれらを理解することはできませんが、それでも問題を解決することはできません。 は、私はあなたが配列変数に任意の値を割り当てる前に、すべてのディメンションを指定する必要が考える Dタイプの不一致:intからintに変換できません[

import java.util.Random; 

public class Stats 

public static void main(String[] args) 
{ 

    int[][] array = { { 1, 2, 3 }, 
         { 4, 5, 6 }, 
         { 7, 8, 9 }, 
         { 10, 11, 12 }, 
         { 13, 14, 15 }, 
         { 16, 17, 18 }, 
         { 19, 20, 21 }, 
         { 22, 23, 24 }, 
         { 25, 26, 27 }, 
         { 28, 29, 30 }, 
         { 31, 32, 33 }, 
         { 34, 35, 36 }, 
         { 37, 38, 39 }, 
         { 40, 41, 42 }, 
         { 43, 44, 45 }, 
         { 46, 47, 48 }, 
         { 49, 50, 51 }, 
         { 52, 53, 54 }, 
         { 55, 56, 57 }, 
         { 58, 59, 60 } }; 

    Random randomNumbers = new Random(); 

    for (int row = 0; row < array.length; row++) 
    { 

     for (int column = 0; column < array[ row ].length; column++) 
     { 
      int counter = 0; 

      array[ counter ] = randomNumbers.nextInt() //Error here 

      System.out.print(counter + "\t " + array[ counter ] + "\t"); 

      counter++; 
     } 

     System.out.println(" "); 
    } 

} 
} 
+0

何です...新しいキーワードが時々必要である理由だけ表示するようにiは整数クラスを使用するC#の構文 を使用しました'counter'変数は何を意味しますか?なぜなら、今はそこに座ってコンパイラを怒らせるからです。 –

+0

行番号、してください? – MathSquared

答えて

3

、ありがとうございます。あなたは、2Dアレイを使用しているため、例えば配列[0] [1]の代わりにのみ配列の[0]

2

ため

配列[0]は3つの要素の配列であるので、あなたは、配列[0を実行しようとした場合] = 0、これはエラーとなり、これはあなたの行がしようとしているものです。なぜなら、array [0]には配列が含まれているからです。

あなたは明らかに、これらの値は、あなたが両方の索引にアクセスする必要がrandomsなど

7

可能性があり

array[counter][0] = shortNumber; 
array[counter][1] = battingAverage; 
array[counter][0] = numWalks; 

を行う必要があります。

array[ row ][ column ] = randomNumbers.nextInt(); //Error here 

あなたがoneRowと内側のループ内のすべてのarray[row]を置き換えることができ、あなたの内側のループ上int[] oneRow = array[row];を置く場合、これは

int[] oneRow = array[row]; 
int oneCell = oneRow[column]; 

としても書くことができます。

さらに、counterは常に0になります。宣言時にインナーループを入力するたびに値を0にリセットします。

カウンタを使用したいが、それを内側のループの外側に置くことができます。

int counter = 0; 
for (int column = 0; column < array[ row ].length; column++) 
{ 
    array[ row ][ counter ] = randomNumbers.nextInt() //Error here 
1

@Carlos間違いのため申し訳ありません ...私は誤って

The Best Approach is to declare the array and initialise it at runtime 

class BaseBall { 
Integer[][] array ; 
int noOfBaseBallPlayers; 

public BaseBall(int noOfBaseBallPlayers) 
{ 
this.noOfBaseBallPlayers = noOfBaseBallPlayers; 
this.array = new Integer[noOfBaseBallPlayers][3]; 
} 

public void assignValues() 
{ 

Random randomNumbers = new Random(); 

    for (int row = 0; row < noOfBaseBallPlayers; row++) 
    { 
     for (int column = 0; column < 3 ; column++) 
     { 
      array[row][coloumn] = new Integer(randomNumbers.nextInt()) 
     } 

    } 


} 

} 
+0

何ですか? 'array [row、column]'?これは有効なJavaではありません!なぜ、 'int'の代わりに' Integer'ラッパークラスを使うのでしょうか? –

関連する問題