2012-01-24 16 views
0
import java.util.ArrayList; 
import java.util.Random; 

public class Generator{ 
//9352141NTBG1223 

public static void main(String[] args) { 
    ArrayList<Integer> intArray = new ArrayList<Integer>(); 
    ArrayList<Integer> int2Array = new ArrayList<Integer>(); 
    ArrayList<Character> charArray = new ArrayList<Character>(); 

    int one = 0; 
    int two = 0; 
    int three = 0; 
    int four = 0; 
    int five = 0; 
    int six = 0; 
    int seven = 0; 
    int N_one = 0; 
    int N_two = 0; 
    int N_three = 0; 
    int N_four = 0; 
    Character Middle1 = 'A'; 
    Character Middle2 = 'A'; 
    Character Middle3 = 'A'; 
    Character Middle4 = 'A'; 

    Random gen1 = new Random(); 

    charArray.add(Middle1); 
    charArray.add(Middle2); 
    charArray.add(Middle3); 
    charArray.add(Middle4); 
    intArray.add(one); 
    intArray.add(two); 
    intArray.add(three); 
    intArray.add(four); 
    intArray.add(five); 
    intArray.add(six); 
    intArray.add(seven); 
    int2Array.add(N_one); 
    int2Array.add(N_two); 
    int2Array.add(N_three); 
    int2Array.add(N_four); 

    for(int i: intArray) { 
    int k = gen1.nextInt(10); 
    i = k; 
    } 
    for(int i: int2Array) { 
    int k = gen1.nextInt(10); 
    i = k; 
    } 
    for(char i: charArray) { 
     int b = gen1.nextInt(20); 
     switch (b) { 
     case 1: i = 'H'; break; 
     case 2: i = 'R'; break; 
     case 3: i = 'F'; break; 
     case 4: i = 'Y'; break; 
     case 5: i = 'U'; break; 
     case 6: i = 'Q'; break; 
     case 7: i = 'T'; break; 
     case 8: i = 'N'; break; 
     case 9: i = 'B'; break; 
     case 10: i = 'L'; break; 
     case 11: i = 'K'; break; 
     case 12: i = 'P'; break; 
     case 13: i = 'I'; break; 
     case 14: i = 'Z'; break; 
     case 15: i = 'X'; break; 
     case 16: i = 'V'; break; 
     case 17: i = 'C'; break; 
     case 18: i = 'E'; break; 
     case 19: i = 'M'; break; 
     } 
    } 
    System.out.print("Generated Code: "); 
    for(int i: intArray) { 
    System.out.print(i); 
    } 
    for(char i: charArray) { 
    System.out.print(i); 
    } 
    for(int i: int2Array) { 
    System.out.print(i); 
    } 
} 

    } 

私はかなりの経験豊富なプログラマーなので、このコードはメソッドやものにあるように設計されていましたが、それだけではうまくいかないので、私はそれをメインメソッドでそのまま試してみました。デフォルトを表示するだけです!何が起こっているのですか私はすべてを試しました!これは意味がありません!あなたがリストに付加価値をどのように、あなただけのローカル変数ikを割り当てていないthatsのなぜこのコードはランダムコードを生成しませんか?

答えて

2
for(int i: intArray) { 
    int k = gen1.nextInt(10); 
    i = k; 
} 

。試してみてください:

同じミスを犯したコードの他の部分を同様に調整する必要があります。

0

あなたのforループでは、リストに値を割り当てていないので、値は変更されません。

for(int i: intArray) { 
    int k = gen1.nextInt(10); 
    intArray.set(i, k); 
} 

おそらくあなたが探しているものです。 (例えば)for(int i: intArray)において

3

iintArrayの要素のための別名ありません。それはintArrayの各要素に設定された単なる変数です。したがって、この:

for(int i: intArray) { 
    int k = gen1.nextInt(10); 
    i = k; 
    } 

これに相当する:

for(int index = 0; index < intArray.size(); ++index) 
    { 
     int i = intArray[index]; 
     int k = gen1.nextInt(10); 
     i = k; 
    } 

(すなわち、それはintArray[index]に等しいiを設定し、その後完全に異なるものに設定します)。

for(int index = 0; index < intArray.size(); ++index) 
     intArray[index] = gen1.nextInt(10); 
+0

intArrayは実際には配列ではありません、それはArrayListのようintArray [インデックス]文句を言わない仕事です。 – yurib

+1

@yurib:まあ、ありがとう。私は最初は配列であるかのように書いていましたが、それがリストであることを認識し、必要な変更の半分しか行いませんでした。しかし、問題ありません。 OPは "かなり経験豊富なプログラマー"なので、私はそのような細部では何の問題もないと確信しています。 – ruakh

+0

OP:Pの信頼感を示すupvote – yurib

0

あなたのint型ループ置き換えます:何が本当に必要なのは、これがある

for (int i = 0; i < int2Array.size(); i++) { 
    int2Array.set(i, gen1.nextInt(10)); 
} 
for (int i = 0; i < intArray.size(); i++) { 
    intArray.set(i, gen1.nextInt(10)); 
} 
関連する問題