Я не понимаю, почему инициализатор переменной 'x' 'in.nextInt()' является избыточным

Почему int x = in.nextInt() ни к чему не привязан, хотя в коде он используется

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    in.useLocale(Locale.US);
    int x = in.nextInt();
    int z = 0;
    do{
        x = in.nextInt();
        if (x > 10){
            z = z + x;
            System.out.println(z);
        }
    } while (x % 5 != 0);
    System.out.println(z);
}

Ответы (1 шт):

Автор решения: Charismatic
public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    in.useLocale(Locale.US);
    int x = in.nextInt(); // первая инициализация
    int z = 0;
    do{
        x = in.nextInt(); // вторая инициализация
        if (x > 10){
            z = z + x;
            System.out.println(z);
        }
    } while (x % 5 != 0);
    System.out.println(z);
}

В данном случае у тебя в цикле do/while, происходит инициализация переменной x и цикл do/while гарантирует тебе, что переменной x будет присвоено значение. Так, что да первая инициализация избыточна.

→ Ссылка