У меня возникли проблемы с печатью массива в полном объеме. Код настроен для печати последовательности случайных чисел, а количество последовательностей случайных чисел (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;
}
}
}
}
Новый код: Незавершенное ...
* Update2: Добавлено ограничение keyboard.nextint.
Обнаруженная ошибка «строковый литерал не закрывается двойной цитатой» в той части, где я пытаюсь напечатать коэффициенты и выравнивания.
* Update3: исправлена ошибка выше (вызвана опечаткой).
Новая проблема: отсортированные номера (нечетные/четные) отображаются, но в неправильном формате. Они появляются как это: Нечетные: 475 Нечетные: 123 даже: 62 даже: 680 даже: 870 нечетное: 457 и т.д. Я хочу: Даже цифры: число число число число нечетные числа: номер номер number number
Также стоит поставить счетчик, который подсчитывает количество четных/нечетных случайных чисел - есть ли способ распечатать все это в одной печати? Или мне сначала нужно сделать system.out.print, а затем выдать систему f для счетчика?
Обновленный код:
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] + " ");
}
}}
, что из-за перерыва; в конце цикла for, но есть и проблемы с семантикой. – Pooya