不是声明。为什么不?

当我试图编译以下 Java 程序时:


public class MyClass 

{

    static int f1() { return 10; }

    static int f2() { return 20; }


    public static void main(String args[])

    {

        int x = 10;

        (x <= 10) ? f1() : f2();

    }

}

我得到了错误:


/MyClass.java:9: error: not a statement

        (x <= 10) ? f1() : f2();

                  ^

Java 语言定义将语句称为赋值、递增/递减、方法调用或对象创建之一。我的错误“声明”涉及方法调用,因此应该有效。事实上,如果我有一个像这样的语句:


f1();

编译器编译程序时没有任何抱怨。同样,如果我将最后一行更改为:


int y = (x <= 10) ? f1() : f2();

然后,一切都是hunky-dory。


作为最后一条信息,C 和 C++ 都没有注意到:


 (x <= 10) ? f1() : f2();


森林海
浏览 138回答 1
1回答

侃侃无极

三元运算符用在表达式中。对于语句,您可以使用 if 语句。这就是定义语法的方式。时期。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java