我有这个密码。此代码只创建一个大小为1,000,000的数组来保存随机生成的整数。我的问题是,我想打印10个整数每行,输出是如此奇怪,我不知道为什么。我调试了代码,发现代码必须像预期的那样工作。不过,它表现得很奇怪。如果有人能帮助我,我将不胜感激。这是我的密码:
Integer[] list = new Integer[1000000];
for(int i = 0 ; i < list.length ; i++)
list[i] = (int)(Math.random() * 1000);
//print 10 integers per line
for(int i = 0 ; i < list.length ; i++){
if( (i+1) % 10 == 0)
System.out.printf("%-5d\n" , list[i]);
else
System.out.printf("%-5d" , list[i]);
}我附上了输出的截图。

顺便说一句:我使用Intellij的想法。
发布于 2020-07-02 16:11:41
控制台周期缓冲区大小为1024 KB ( Intellij的默认值),您可以在Settings -> Editor -> General -> Console中看到它。所以你的1,000,000随机数比那更多。在控制台的第一行中,在程序执行后,您不会看到真正的第一行,而是在进程中间的某个位置。所以,这条线被切断了。如果您打印1000个数字,您将看到您的代码工作良好。
编辑:
在上述设置的位置,有一个选项覆盖控制台缓冲区大小,单击复选框,增加缓冲区大小。当尺寸足够大时,您可以看到每一行10个数字的形式。
https://stackoverflow.com/questions/62700139
复制相似问题