У меня есть небольшие трудности со следующей проблемой.
Я инициализировал логический массив с именем numberArray с 31 индексом. Предполагается, что пользователь вводит 5 цифр от 1 до 30, и каждый раз, когда вводится цифра, программа должна установить правильный индекс в значение true. Например, если я введу 5, то:
numberArray [5] = true;
Однако, если пользователь вводит значение 5 во второй раз, пользователю должно быть дано сообщение о том, что этот номер уже введен, и поэтому пользователь должен выбрать другое значение. Я попытался создать цикл следующим образом:
public void enterArrayValues() {
for(int i = 1; i < 6; i++) {
System.out.print("Give " + i + ". number: ");
int enteredNumber = input.nextInt();
while (numberArray[enteredNumber] = true) {
System.out.println("This number has already been chosen.");
System.out.print("Give " + i + ". number again: ");
enteredNumber = input.nextInt();
}
numberArray[enteredNumber] = true;
}
}
Проблема в том, что когда я запускаю программу, я автоматически получаю сообщение «Номер уже выбран», независимо от того, что я ввожу. Даже в первый раз я ввожу номер. Я не понимаю этого. Разве все значения в логическом массиве не являются ложными по умолчанию?
Буду очень признателен, если кто-нибудь сможет мне помочь с этим!