Код прикрепить не могу, так как посмотрела верное решение и нажала случайно кнопку проверки. Свой код сначала написала и проверила в Eclipse IDE, где он успешно работал с разными вариантами целых чисел. Затем перенесла его в джавараш, где валидатор сказал, что в моем коде не выполнены 3 и 4 требования. Почему?
Условие :
"В этой задаче нужно:
Считывать целые числа с клавиатуры до тех пор, пока не будет введено что-то другое: например, строка или символ.
Должно быть введено минимум два числа. Если введено меньше двух целых чисел, то такую ситуацию обрабатывать не нужно, а программа может быть завершена с ошибкой.
Вывести на экран второе по величине целое число после минимального из введенных с клавиатуры. Если таких чисел несколько, то необходимо вывести любое из них.
Минимальных чисел тоже может быть несколько.
Пример ввода:
8
4 // минимальное число
7
4 // минимальное число
5 // второе по величине число (второе минимальное)
9
5 // второе по величине число (второе минимальное)
exit
Пример вывода:
5
Требования:
Программа должна считывать числа c клавиатуры.
Программа должна выводить число на экран.
Программа должна выводить на экран второе минимальное из введенных целых чисел.
Если введено несколько вторых минимальных чисел, необходимо вывести любое.
Считывать данные с клавиатуры необходимо в цикле while."
Код:
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
int min = sc.nextInt();
int secondMin = sc.nextInt();
if (min > secondMin) //3 > 1
{
int tmp = min; //3
min = secondMin; //1
secondMin = tmp; //3
}
while (sc.hasNextInt())
{
int x = sc.nextInt(); // 0; -2
if (x < min) //0 < 2; -2 < 0
{
secondMin = min; //1; 0
min = x; //0; -2
}
else if (x > min && x < secondMin) //2 > 1 and 2 < 3; - 1 > - 2 and - 1 < 0
{
secondMin = x;//2; - 1
}
}
System.out.println(secondMin);//вывести на экран значение переменной 2мин
}
}