Возвращаюсь к этой задаче который раз...Вообщем,решила все,абсолютно все расписать,чтобы уложилось по полочкам.Выводит значение правильное,но валидатор это отрицает...Помогите разобраться
package com.javarush.task.pro.task04.task0410;
import java.util.Scanner;
/*
Второе минимальное число из введенных
*/
public class Solution {
public static void main(String[] args) {
Scanner con=new Scanner(System.in);
int min = con.nextInt();
int secondMin = con.nextInt();
if (secondMin < min) {//первый блок команд
int tmp = min;//сравниваем первое и второе введенное число
min = secondMin;//если второе меньше, то первому присвой значение secondMin
secondMin = tmp;//а второму присвой значение min(мы
//же ищем второе по величине от минимального)
while (con.hasNextInt()){
int x = con.nextInt();//вводим третье число
if(min == secondMin) {//если первое равно второму
if(x < min) {//Ииии если третье меньше первого
min = x;//то первое равно третьему
//вот так мы сравнили первое и третье,выделив минимальное из них
} else {//если третье больше первого
secondMin = x;//то второе равно третьему
//так мы сравнили первое,второе с третьим числом
//в случае если первое равно второму
}
} else if (x < min) {//если второе и первое НЕ равны
secondMin = min;//в случае,если третье окажется меньше первого
min = x;//то первое стает минимальным,а его предыдущее значение отойдет второму
} else if (x > min && x < secondMin) {//если попался случай когда
secondMin=x;//третье посередине между первым и вторым
//то третье число равно второму
//в итоге мы рассмотрели пять ветвей событий
//ПЕРВАЯ:если второе меньше первого
//ВТОРАЯ:если второе равно первому и третье меньше первого
//ТРЕТЬЯ:если второе равно первому и третье больше первого
//ЧЕТВЕРТАЯ:если второе НЕ равно первому и тертье меньше первого
//другой случай в четвертой ветви мы не рассмотрели,так как
//если третье больше минимального,то нам нет смысла изменять значение второго числа
//ПЯТАЯ:если третье посередине между первым и вторым
}
}
}
System.out.println(secondMin);
}
}