Не проходит условие "Программа должна выводить самую короткую строку на экран.", хотя все выводит как нужно, вроде. Тестировал с разными вариантами.
package com.javarush.task.task07.task0709;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> myArray = new ArrayList<String>();
int x = 0;
for (int i = 0; i < 5; i++) myArray.add(reader.readLine());
x = myArray.get(0).length();
for (int i = 1; i < myArray.size(); i++) {
if (myArray.get(i - 1).length() < myArray.get(i).length())
if (x > myArray.get(i - 1).length()) x = myArray.get(i - 1).length();
else if (x > myArray.get(i).length()) x = myArray.get(i).length();
}
for (int i = 0; i < myArray.size(); i++) if (myArray.get(i).length() == x) System.out.println(myArray.get(i));
}
}