1

我正在尝试学习 Java 的 Mac Mini G4。当我尝试通过在终端输入“javac DooBee.java”来编译“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");
        }
    }
}

我犯错了吗?还是我的电脑有问题?抱歉,如果这个问题(或类似问题)已经被问过。老实说,我试图自己找到答案(谷歌搜索,搜索 Stack Overflow,多次重写我的代码,检查我的书“Head First Java”以确保我以正确的方式输入内容)但结果是空的。

4

4 回答 4

5

问题是那(x = 1)是一个表达式,而不是一个声明,所以它不能用来声明变量x。删除括号,您将得到一个带有初始化程序的正确声明。

于 2011-01-25T02:01:03.470 回答
2

正确的声明是:

public class DooBee {
    public static void main (String[] args) {
        int x = 1;
        ...
    }
}
于 2011-01-25T02:05:46.310 回答
2

记住您在 Java 中的操作顺序。括号内的项目首先被评估,因此 (x=1) 被评估,这在 Java 中甚至没有真正意义,因此出现错误。

通常,您只会将括号括在强制转换、if、while、else if、else 和 for 语句之后的子句,或者在您希望布尔逻辑非常清晰的情况下。

于 2011-01-25T02:15:17.810 回答
1
int (x = 1);

将其替换为

int x = 1;
于 2011-01-25T02:02:46.750 回答