Что тут не так?
Ввод :
дедушка
бабушка
дочь
программа
машина
Вывод :
дедушка
бабушка
программа
package com.javarush.task.task07.task0708;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самая длинная строка
*/
public class Solution {
private static ArrayList<String> strings;
public static void main(String[] args) throws Exception {
String max = "";
strings = new ArrayList<String>();
BufferedReader rd = new BufferedReader(new InputStreamReader(System.in));
for (int i = 0; i < 5; i++) {
String a = rd.readLine();
strings.add(a);
if (strings.get(i).length() >= max.length()){
max = strings.get(i);
System.out.println(max);
}
}
}
}
2. В условии if () ... проблема в том, что при i = 0 max принимает значение первого элемента списка, т. к. его длина на данном этапе - максимальная (длина "дедушка" больше ""? -> присвой в max и выведи его на экран) и только на i = 3 max примет новое значение (длина "программа" больше "дедушка"? -> присвой в max и выведи на экран) соответственно программа будет неправильно выводить результат.