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);
}
}
}我是一个相当有经验的程序员,所以我设计了一个代码,这个代码过去是在方法和东西中,但它就是不起作用,所以我直接在main方法中尝试它,它不会生成随机代码,它只是打印出默认值!怎么回事我什么都试过了!这没有任何意义!
发布于 2012-01-25 02:39:29
例如,在for(int i: intArray)中,i不是intArray元素的别名;它只是设置给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;
}(即,它将i设置为等于intArray[index],但随后将其设置为完全不同的值)。你真正需要的是:
for(int index = 0; index < intArray.size(); ++index)
intArray[index] = gen1.nextInt(10);https://stackoverflow.com/questions/8992106
复制相似问题