Последний цикл перебирает весь массив и сравнивает с минимум и максимум, и если находит сравнения, то выводит на экран и прекращается.
Почему не срабатывает тогда? Или я не правильно понимаю условие?
package com.javarush.task.task07.task0712;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самые-самые
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> list = new ArrayList<>();
for (int i =0; i<10; i++) {
list.add(reader.readLine());
}
int a = 0; //определение максимума
String b = null;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() > a) {
a = list.get(i).length();
b = list.get(i);
}
}
int c = list.get(0).length(); //определение минимума
String d = null;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() <= a) {
c = list.get(i).length();
d = list.get(i);
}
}
for (int i = 0; i < list.size(); i++) { //какая пременная встретится в списке раньше
if (a == list.get(i).length()) {
System.out.println(b);
break;
}
else if (c == list.get(i).length()) {
System.out.println(d);
break;
}
}
}
}
/* 1. Объяви переменную типа список строк и сразу проинициализируй ee.
2. Программа должна считывать 10 строк с клавиатуры и добавлять их в список.
3. Программа должна выводить на экран самую короткую строку, если она была раньше самой длинной.
4. Программа должна выводить на экран самую длинную строку, если она была раньше самой короткой.
5. Должна быть выведена только одна строка.
*/