您是否必须在java

时间:2017-07-15 19:01:08

标签: java operators conditional

我有一个方法,我在做一个条件操作。 但是我收到了编译错误。

public void hello(){
    int x=15;
        x==15 ?"Hi":"Bye";
}

如果我编辑该行并放入下面提到的内容,则错误就会消失:

String salutation=x==15 ?"Hi":"Bye;

我的问题是 - 是否必须将条件运算符返回的值赋给变量?

3 个答案:

答案 0 :(得分:1)

x==15 ? "Hi" : "Bye;只是漂浮在什么都没做;这是一个纯粹的表达。就像在代码中间写"Hi"一样。您需要将其分配给变量才能实际影响任何内容。

所以是的,从某种意义上讲,它是强制性的,如果你想要三元组做某事,你必须分配结果;不提供三元的一部分(条件和两个条款)都会产生副作用。

答案 1 :(得分:0)

  

您是否必须存储条件运算符返回的值   的java

不一定,但为了简化,您不能在不使用它的情况下声明它。

例如,您可以将其分配给变量:

String salutation=x==15 ?"Hi":"Bye;

但是您不必将值存储在局部变量中 您还有其他方法可以使用它。

例如,您可以将其作为等待String的参数传递:

myMethod(x==15 ?"Hi":"Bye");

public void myMethod(String string) {... }

或者您仍然可以使用它来应用方法:

if ((x==15 ?"Hi":"Bye").equals("Bye")){
    ...
}

答案 2 :(得分:0)

您收到错误,因为您没有根据条件分配值。基于单个条件将单个变量分配给两个状态之一是if-else的常见用法,即已为其设计了一个快捷方式,即条件运算符?:。如果条件没有返回任何值,则不能使用简写形式?:。您的示例可以重写

public void hello(){
    int x = 15;
    String salutation;
    if (x == 15){
      salutation = "Hi";
    }else 
     salutation = "Bye;
}

使用条件运算符,我们可以在一行中重写上面的例子:

public void hello(){
    int x = 15;
    String salutation = x==15 ?"Hi":"Bye;
}