2016-04-23 8 views
0

私はカードのデッキを作成しようとしていますが、私は奇妙な問題に遭遇しました。私はそれが簡単な解決策を持っていると仮定しますが、私の人生のためにそれを見つけることはできません。どんな助けもありがとう。Java - For Loop即時に会議の必要条件

基本的には、Forループに入り、初期化されたintは最終的に必要なサイズのサイズになります。それは、コードは、zのdeck[i] = CreateCard(y, z); 値が3である行を入力し、yが12であり、0

/* Create Deck */ 
String[] deck = new String[52]; 
int y, z, i = 0; 
for (z = 0; z < 3; z++); // Loop while fills deck array 
{ 
    for (y = 0; y < 12; y++); 
    { 
     deck[i] = CreateCard(y, z); //Trigger CreateCard method for each card 
     System.out.println(deck[i]); 
     i++; 
    } 
} 

に初期化されるにもかかわらず、なぜこれが全体のデッキを通して実行されませんか?

+5

'for(z = 0; z <3; z ++); ' - ループの本体は空です。タイプミスとしてクローズする投票。 –

+1

ループヘッダー内で 'z'と' y' *を宣言した場合、 'for(int z = 0; z <3; z ++) 'の場合は、' CreateCard'コール(Javaの命名規則に従うには 'createCard'でなければなりません)、btw )。 –

+0

私はループの中でそれらを宣言しようとしましたが、私が得ていたエラーメッセージを理解できませんでした:Pそして命名規則のおかげでありがとう、 – Scott

答えて

2

forループ宣言の最後にセミコラムがあります。また、ループの最後にセミコラムがあるときは、ループの本体が各繰り返しで実行されず、forループの条件が終了するとループの本体が1回だけ実行されます。あなたは、例えば、各ループ宣言の終わりにセミコロンを有する

修正コード

/* Create Deck */ 
String[] deck = new String[52]; 
int y, z, i = 0; 
for (z = 0; z < 3; z++) // Loop while fills deck array 
{ 
    for (y = 0; y < 12; y++) 
    { 
     deck[i] = CreateCard(y, z); //Trigger CreateCard method for each card 
     System.out.println(deck[i]); 
     i++; 
    } 
} 
+0

笑.... :) :) :) –

関連する問題