8
4
7
4
5
9
5
exit
В результате выводит 4. Мысленно проводил каждую цифру по коду и у меня все сходилось. Но видимо мой процессор послабее. Подскажите где ошибка.
Логика кода:
Вводим 2 значения.
Если нужно, то меняем переменные местами чтобы отвечали минимуму (мин) и следующему минимуму (некстмин).
Запускаем цикл в котором новые значения с консоли не учитываются если они больше предыдущих значений, заменяем минимальное значение либо некстмин в зависимости от условий.
Если вводится не число, цикл прерывается и выводится нексмин на экран.
package com.javarush.task.pro.task04.task0410;
import java.util.Scanner;
/*
Второе минимальное число из введенных
*/
public class Solution {
public static void main(String[] args) {
Scanner cons = new Scanner(System.in);
int min = cons.nextInt();
int nextmin = cons.nextInt();
int temp = 0;
if (nextmin>min)
{
temp = nextmin;
nextmin = min;
min = temp;
}
while (cons.hasNextInt())
{
int x = cons.nextInt();
if (x >= nextmin || x == min)
continue;
if (x < min)
nextmin = min;
min = x;
if (x < nextmin && x > min)
nextmin = x;
}
System.out.println(nextmin);
}
}