0

私は独学で Java を学ぼうとしていますが、プログラマーとしてのバックグラウンドはありません。Sedgewick と Wayne の「Programming in Java」に基づいて、カードのデッキの配列を作成し、5 枚のランダムなカードの「f」ハンドを出力するプログラムを作成しようとしています。これまでプログラムを構成したため、「i」は既にメインで定義されているというエラー メッセージが表示されます。私は何を間違っていますか?

public class Deal
{
    public static void main(String[] args)
    {

        String[] suit = { "Clubs", "Diamonds", "Hearts", "Spades" };

        String[] rank = 
        {
            "2", "3", "4", "5", "6", "7", "8", "9", "10",
            "Jack", "Queen", "King", "Ace"
        };
        // Creates the deck
        String[] deck = new String[suit.length * rank.length];
        for (int i = 0; i < suit.length; i++)
            for (int j = 0; j < rank.length; j++)
                deck[rank.length*i + j] = rank[i] + " of " + suit[j];

        int f = Integer.parseInt(args[0]);

        for (int i = 0; i < f; i++) 
        {
           int M = 5;    
           int N = 52;   

            // create permutation 0, 1, ..., N-1
           int[] perm = new int[N];
           for (int i = 0; i < N; i++)
               perm[i] = i;

           // create random sample in perm[0], perm[1], ..., perm[M-1]
           for (int i = 0; i < M; i++)  {

           // random integer between i and N-1
           int r = i + (int) (Math.random() * (N-i));

           // swap elements at indices i and r
           int t = perm[r];
           perm[r] = perm[i];
           perm[i] = t;
       }

           // print results
           for (int i = 0; i < M; i++)
               System.out.println(deck[perm[i]] + " ");
           System.out.println();
        }
    }
}
4

1 に答える 1

6

iこのエラーは、すでに定義されている変数を定義しようとしていることを意味します。それ以上のことは何もありません。

あなたが持っている

for (int i = 0; ...) {
  ...
  for (int i = 0; ...) { // error here.
  ...
  }
}

たとえば、内側のループでは、別の変数名を使用する必要がありjます。

于 2013-07-04T20:03:06.403 に答える