public static void main(String[] args) {
//напишите тут ваш код
Scanner s = new Scanner(System.in);
int min = Integer.MAX_VALUE;
while (s.hasNextInt()) {
int x = s.nextInt();
if (x < min) {
min = x;
}
else if (!(s.hasNextInt())) {
break;
}
}
System.out.println(min);
int secondMin;
while (s.hasNextInt()) {
int y = s.nextInt();
if (y == min) {
continue;
}
else if (y < min) {
secondMin = y;
}
}
System.out.println(secondMin);
}
Ошибка java: variable secondMin might not have been initializedAnonymous #3228404
11 уровень
Всем привет! Подскажите, как сделать два цикла while друг за другом? В первом цикле хочу найти минимальное значение, во втором также найти минимальное значение, но исключить первый минимум.
Обсуждается
Комментарии (4)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
AnnaVin
7 февраля 2023, 11:20
Ну у тебя первой переменной сразу присваевается значением, т.е. Integer.MAX_VALUE, а второй нет, а так как это локальная переменная метода мэйн то значение по умолчанию ей не присваивается. По этому и ошибка о том что она может не быть проинициализирована. В общем ей просто нужно так же сразу присвоить значение, как и первой Integer.MAX_VALUE подойдёт.
+1
Anonymous #3228404
7 февраля 2023, 12:02
Присвоил значение, все равно некорректно работает программа. В выводе у меня получается самое минимальное число, а по второму циклу он просто выводит MAX_VALUE (в цикл второй не заходит получается) Есть какие нибудь еще идеи?)
0
AnnaVin
7 февраля 2023, 12:21
А что если если секонд использовать для первого цикла, тогда и второго не нужно будет.
В цикле просто сначала секонду присваивать мин, а дальше уже мин равно икс.
0
AnnaVin
7 февраля 2023, 12:21
Тогда если я не ошибаюсь в логике, будет второе минимальное сохранено в секонд.
0