Прошу помощи знающих. Почему данная конструкция не работает для отрицательных значений:
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int [] arrayNumer = new int[5];
        for (int i =0; i < 5; i++){
            int number = Integer.parseInt(reader.readLine());
            arrayNumer [i] = number;
        }
        for (int i = 0; i < 4;i++ ){
            if (arrayNumer[i] > arrayNumer[i+1]){
                int w = arrayNumer[i];
                arrayNumer[i] = arrayNumer[i + 1];
                arrayNumer[i+1] = w;
                i = 0;
            }
        }
        for (int i = 0; i < 5; i++){
            System.out.println(arrayNumer[i]);
        }
    }
}
Что бы работало нужно исправить на:
public class Solution {
    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        int [] arrayNumer = new int[5];
        for (int i =0; i < 5; i++){
            int number = Integer.parseInt(reader.readLine());
            arrayNumer [i] = number;
        }
        for (int i = 0; i < 4; ){
            if (arrayNumer[i] > arrayNumer[i+1]){
                int w = arrayNumer[i];
                arrayNumer[i] = arrayNumer[i + 1];
                arrayNumer[i+1] = w;
                i = 0;
            }else {i++;}
        }
        for (int i = 0; i < 5; i++){
            System.out.println(arrayNumer[i]);
        }
    }
}