我对java很陌生,所以如果这是一个愚蠢的问题我会道歉但我已经从基础开始并积累起来。我最近从一个教程中进入了数组,我让他们在不同的实例中工作,但现在他们似乎没有输出正确的值。这是我的代码:
import java.util.Random;
class mainstart {
public static void main (String[] args) {
Random rand = new Random();
int freq[]=new int[7];
for(int roll = 0; roll<1000; roll++){
++freq[1+rand.nextInt(6)];
}
System.out.println("Face\tFrequency");
for(int face=1;face<freq.length;face++){
System.out.println(face + "\t" + freq);
}
}
}
这个程序应该掷骰子1000次并在图表中列出频率,但是当我运行代码时它会给我一系列数字和字母,如下所示:
Face Frequency
1 [I@6d06d69c
2 [I@6d06d69c
3 [I@6d06d69c
4 [I@6d06d69c
5 [I@6d06d69c
6 [I@6d06d69c
我最初偏离了教程,以帮助我更好地记住它与直接复制,但即使在那之后,我也无法使它工作。我最后复制了除了类名以外的行,但仍然无法输出它来输出值,即使我看到它完全适合其他人。
我不确定我是否可以在这里链接视频,但至于我的结果是在我更改的设置中的某些内容?或者只是我忽略了一些简单的事情? 我试过研究这个,但我不知道在哪里看,我希望有人可以提供帮助。
答案 0 :(得分:0)
您正在将数组打印到输出,并且数组的toString()方法不是那么readebla,这就是问题所在。如果你想打印数组元素,你应该迭代数组并打印实际元素yourArray [index],或者你可以只使用Arrays.toString(yourArray)
答案 1 :(得分:0)
修改后的代码希望我的代码有帮助
Random rand = new Random();
int freq[]=new int[7];
for(int roll = 0; roll<1000; roll++){
++freq[1+rand.nextInt(6)];
}
System.out.println("Face\tFrequency");
for(int face=1;face<freq.length;face++){
System.out.println(face + "\t" + freq[face]);
}
快乐编码