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

Я на 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 ]

5 голосов
/ 25 января 2011

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

2 голосов
/ 25 января 2011

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

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

2 голосов
/ 25 января 2011

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

public class DooBee {
    public static void main (String[] args) {
        int x = 1;
        ...
    }
}
1 голос
/ 25 января 2011
int (x = 1);

замените это на

int x = 1;
...