Я изучаю Java через серию объяснений и упражнений, и один из них заключался в создании программы, которая отображала бы оценку количества (0-5) в соответствии с рядом пунктов (0-29, 30-34, 35-39, 40-44, 45-49, 50-60).Как иметь диапазон чисел в выражении if/else Java
System.out.println("Type the points [0-60]: ");
double points = reader.nextDouble();
reader.nextLine();
if (points < 29) {
System.out.println("Grade: FAILED.");
} else if (points <= 34) {
System.out.println("Grade: 1.");
} else if (points <= 39) {
System.out.println("Grade: 2.");
} else if (points <= 44) {
System.out.println("Grade: 3.");
} else if (points <= 49) {
System.out.println("Grade: 4.");
} else if (points >= 50) {
System.out.println("Grade: 5.");
}
Программа работает в том, что она будет давать правильную оценку из-за перекрытия в командах, но есть ли способ, чтобы создать диапазон чисел или строк, которые могли бы удовлетворить условию, если/другое заявление ? Например, если введенный номер находится между 40-44 и так далее. Детальный ответ был бы оценен, так как я новичок.
Вы можете инвертировать контроль в операторах if, чтобы сделать его более понятным. Но сначала я предлагаю вам создать новую переменную, которая будет содержать оценку, а затем после тестирования использовать один 'System.out.println (« Grade: »+ gradeVar);' – itwasntme
. Ваши диапазоны строго смежны, только если вы используете 'Integer ', а не' Double'. Например, для двух диапазонов «0-29, 30-34» (при условии включения ограничений), какой класс должен составлять 29,5? –
Последний 'else if' должен быть просто' else'. 'If (points> = 50)' ничего не делает. – Andreas