我有一个方法,我在做一个条件操作。 但是我收到了编译错误。
public void hello(){
int x=15;
x==15 ?"Hi":"Bye";
}
如果我编辑该行并放入下面提到的内容,则错误就会消失:
String salutation=x==15 ?"Hi":"Bye;
我的问题是 - 是否必须将条件运算符返回的值赋给变量?
答案 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;
}