私は独学で 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();
}
}
}