Джавак говорит int (x = 1); не утверждение тогда говорит ';' ожидается. Что не так с моим кодом?

Я на Mac Mini G4 пытаюсь выучить Java. Когда я пытаюсь скомпилировать "DooBee.java", набрав "javac DooBee.java" в терминале, я получаю две ошибки. Вот как выглядит мой терминал:

> nephi-shields-mac-mini:/developer/MyProjects
> nephishields$ javac DooBee.java
> DooBee.java:5: not a statement
>                 int (x = 1);
>                 ^ DooBee.java:5: ';' expected
>                 int (x = 1);
>                     ^ 2 errors nephi-shields-mac-mini:/developer/MyProjects
> nephishields$

Вот что я ввел в свой файл "DooBee.java":

public class DooBee {
    public static void main (String[] args) {
        int (x = 1);

        while (x < 3) {
            System.out.print ("Doo");
            System.out.print ("Bee");
            x = x + 1;
        }

        if (x == 3) {
           System.out.print ("Do");
        }
    }
}

Я сделал ошибку? Или что-то не так с моим компьютером? извините, если этот вопрос (или похожий) уже был задан. Я честно пытался найти ответ самостоятельно (поиск в Google, поиск переполнения стека, несколько раз переписывал мой код, проверил мою книгу "Head First Java", чтобы убедиться, что я печатал правильно), но оказался пустым.

4 ответа

Решение

Проблема в том, что (x = 1) является выражением, а не объявлением, поэтому его нельзя использовать для объявления переменной x, Удалите скобки, и вы получите правильное объявление с инициализатором.

Правильная декларация:

public class DooBee {
    public static void main (String[] args) {
        int x = 1;
        ...
    }
}

Запомните ваш порядок действий в Java. Элементы внутри круглых скобок оцениваются первыми, поэтому оценивается (x=1), что на самом деле не имеет смысла в Java, отсюда и ошибка.

Как правило, скобки заключаются только в приведение, предложения после операторов if, while, else if, else и for или в ситуациях, когда вы хотите, чтобы ваша логическая логика была очень ясной.

int (x = 1);

замени это

int x = 1;
Другие вопросы по тегам