Подскажите на сколько грамотно написан код. Был ли смысл решать данную задачу в таком виде? Либо все же нужно было делать, так как указано в решении данной задаче?
package com.javarush.task.pro.task04.task0410;
import java.util.Scanner;

public class Solution
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        int max = Integer.MAX_VALUE;
        int min = max;
        int end = max;
        while (sc.hasNextInt())
        {
            int i = sc.nextInt();
            if (i < min && min == max)
            {
                min = i;
                end = i;
            }
            if (i < min)
            {
                end = min;
                min = i;
            }
            //if (i > min && end == max) end = i; убрал в комент данную строку, так как она не нужна
            // Хотя компилятор схавал код с ней.
            if (i > min && i < end) end = i;
        }
        System.out.println(end);
    }
}
Само решение вот такое было.
package com.javarush.task.pro.task04.task0410;

import java.util.Scanner;

/*
Второе минимальное число из введенных
*/

public class Solution {
    public static void main(String[] args) {
        Scanner console = new Scanner(System.in);

        int min = console.nextInt();
        int secondMin = console.nextInt();
        if (secondMin < min) {
            int tmp = min;
            min = secondMin;
            secondMin = tmp;
        }
        while (console.hasNextInt()) {
            int x = console.nextInt();
            if (x < min) {
                secondMin = min;
                min = x;
            } else if (x < secondMin && x > min) {
                secondMin = x;
            }
        }
        System.out.println(secondMin);
    }
}