Вроде на практике все условия выполняются (решение упорно не смотрю)
package com.javarush.task.pro.task04.task0410;
import java.util.Scanner;
/*
Второе минимальное число из введенных
*/
public class Solution {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
int min = keyboard.nextInt();
int x = keyboard.nextInt();
int reserve = 0;
int preMin = (x > min) ? x : Integer.MAX_VALUE;
while (keyboard.hasNextInt()){
x = keyboard.nextInt();
if (x < preMin){
if (x < min) {
reserve = min;
min = x;
}else if (x == min){
} else if (x < preMin) {
preMin = x;
}
}
}
if (preMin == Integer.MAX_VALUE)
preMin = reserve;
System.out.println(preMin);
}
}