我在完整打印数组时遇到问题。该代码被设置为打印随机数序列,并且随机数序列的数量(1-12)旨在来自用户输入。但是,我无法让它打印超过第一个随机数。我之前设法打印了整个序列,但由于这是一个作业并且我必须使用数组,所以我的第一个方法不再有效。
import java.util.Scanner;
import java.util.Arrays;
public class Test4 {
public static void main(String[] args) {
int randomNumber;
int[] allNumbers = new int[12];
Scanner keyboard = new Scanner(System.in);
for (int i = 1; i <= allNumbers.length; i++) {
allNumbers[i] = (int) (Math.random() * 999 + 1);
System.out.print("How many random numbers? ");
randomNumber = keyboard.nextInt();
System.out.print("\n" + "Random numbers: ");
System.out.print(allNumbers[i] + " ");
{
System.out.print("\n");
System.out.print("\n" + "Even numbers: " + (allNumbers[i] % 2 == 0));
System.out.print("\n" + "Odd numbers: ");
break;
}
}
}
}
新代码:正在进行中...
*更新2:添加了对keyboard.nextint 的限制。
在我尝试打印奇数和偶数的部分遇到“字符串文字未用双引号封闭”错误。
*Update3:修复了上述错误(由打字错误引起)。
新问题:排序后的数字(奇数/偶数)显示出来,但格式错误。他们的表现是这样的: 奇数:475 奇数:123 偶数:62 偶数:680 偶数:870 奇数:457 ETC。 我想: 偶数:数数数数数 奇数:数数数数
还希望在那里放置一个计数器来计算偶数/奇数随机数的数量 - 有没有一种方法可以在一次打印中打印所有这些?或者我首先必须为计数器创建一个 system.out.print 然后是一个系统输出 printf ?
更新的代码:
import java.util.Scanner;
import java.util.Arrays;
public class Test7 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.print("How many random numbers?: ");
int size = keyboard.nextInt();
System.out.print("\n");
while (size>12 || size<1);
int[] randNum = new int[size];
for(int i = 0 ; i < randNum.length ; i++)
randNum[i] = (int)(Math.random() * 999 + 1);
System.out.println("Random numbers: " + Arrays.toString(randNum).replace("]", "").replace(",", "").replace("[", "") + "\n");
for(int i = 0 ; i < randNum.length ; i++)
if(randNum[i] % 2 == 0) {
System.out.print("\r" + "Even numbers: ");
System.out.print(randNum[i] + " ");
} else {
System.out.print("\r" + "Odd numbers: ");
System.out.print(randNum[i] + " ");
}
}}
最佳答案
Java 数组使用从零开始的索引。
for(int i = 0; i < allNumbers.length ; i++)
因此,for循环应该如上。否则,您可能应该得到 ArrayIndexOutOfBoundException。
此外,您在 for 循环中包含的 break
语句会导致循环不会运行多次。您应该始终使用带有条件的 break 语句(例如:在 if block 内)
关于java - 数组未完整打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36388915/