Всем добрый день. Уже сломал себе голову, что не так. Логика программы:
1. Первое число на вводе записываем и в первое минимальное (min1), и во второе минимальное (min2) сразу. Далее:
2. Если следующее число меньше первого, старое min1 записываем в min2, а новое минимальное число - в min1. Текущий цикл останавливаем, чтобы программа не маслала зря.
3. Если следующее число не меньше min1, но меньше min2, записываем его в min2. Иначе никуда не записываем.
4. После того, как цикл спотыкается о что-то не типа int, на экран выводится второе минимальное значение
2, 2 и 3 во ввод подставлял, как мне советовал интерактив - все правильно, программа выдает 3. Что не так?
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 last;
int min1 = Integer.MAX_VALUE;
int min2 = Integer.MAX_VALUE;
if (sc.hasNextInt()){
last = sc.nextInt();
min1 = last;
min2 = last;
}
while (sc.hasNextInt()){
last = sc.nextInt();
if(last < min1){
min2 = min1;
min1 = last;
continue;
}
if(last < min2 && last > min1){
min2 = last;
}
}
System.out.println(min2);
}
}
min2 = last;}