Задачу решил с помощью цикла for, но вот с while (ниже в примере) не работало. В чем собственно разница, вроде все идентично? Где можно почитать про подобные различия for и while? 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> newList = new ArrayList<>(); int i = 0; while(i < 5){ i++; String s = reader.readLine(); newList.add(s); } int j = 0; while(j < 13){ j++; String str = newList.get(4); newList.remove(4); newList.add(0, str); } int x = 0; while(x < newList.size()){ x++; System.out.println(newList.get(x)); } } }