今天又写了一个通过生成随机数组来转化为字母进行输出的类,但是发现一个很神奇的现象:
当用户输入的随机数组内元素数量较多时,例如56个元素,此时该数组最终输出的数值和字母表现出来惊人的重复性,甚至是AAA-BBB-CCC这样的结构!
于是我又研究了好久为什么会这样,最后发现。。。
果然我写的东西小毛病不断啊(笑
贴出代码,估计这个简单的功能我用了这么多代码来实现也是很苦手了,哈哈哈。
public static void ArraysExercise(){
Scanner input4 = new Scanner(System.in);//提前已经导入了Scanner,现在直接调用
System.out.println("输入预期数组内元素数量:");
int NUM = input4.nextInt();//声明一个变量NUM用于存放用户希望该数组内元素的数量
int[] AN = new int[NUM];//声明整型数组并定义其长度为变量NUM
int BN = 0;//声明一个整型变量用于存放循环体内的数值
for(int i = 0;i<AN.length;++i){//生成随机数并储存的循环
double ch = (Math.random()) * 26;
BN = 65 + (int)ch;//该表达式可以保证生成的数值都能够转化为大写字母
AN[i] = BN;//将随机数储存到数组内
}
System.out.println("随机数组为:");
for(int a = 0;a<AN.length;++a){//遍历输出数组数值的循环
System.out.print(AN[a] + " ");
}
System.out.println(" ");//换行
System.out.println("随机数组转化的字母为:");
for(int b = 0;b<AN.length;++b){//将数字转换为字母并输出的循环
System.out.print((char)AN[b] + " ");
}
}