Не имеет отношения к вашей проблеме, но ваш первый цикл while будет препятствовать тому, чтобы пользователь вводил 10 или 20, потому что цикл while продолжает проверять, совпадают ли входные данные с этими двумя.
Ваш второй цикл while isn 'Я делаю много, и в этом было бы больше смысла в качестве оператора if - Если вы еще не убедились, что он находится в диапазоне в вашем первом цикле while.
Теперь ваша настоящая проблема в том, что вы запускаете свой счетчик как i
но с шагом newnumber
.Даже если вы увеличиваете i
, оно все равно никогда не будет работать для коэффициентов, потому что ваш начальный номер нечетный, а вы увеличиваете на 2. Вы можете выбрать
- , начинайте с цифры, если только число не равнонечетное число затем + 1
- увеличивает счетчик цикла на 1 каждую итерацию
Используя первый параметр
while (number < 10 || number > 20) {
System.out.print("No, between 10 and 20: ");
System.out.println("Please choose a number between 10 and 20! ");
number = keyboard.nextInt();
}
for (int i = (number % 2 == 0 ? number : number+1); i <= 50; i+=2) {
System.out.println(newnumber);
}
Обратите внимание, что я прекращаю проверку, если каждая итерация быладаже потому, что я начал с четного числа и увеличил на 2.