pet*_*446 3 java if-statement ternary-operator
我该怎么做,例如,if块检查条件是否为true或false,然后根据该条件执行操作?
喜欢,
if (check true or false)
if false do action
if true do action
Run Code Online (Sandbox Code Playgroud)
像这样的事情在没有块的情况下在同一行中完成,这可能吗?
对不起,我的英语不好
谢谢。
您可以使用java 三元运算符,
result = testCondition ? value1 : value2
Run Code Online (Sandbox Code Playgroud)
这条语句可以理解为,如果testCondition为真,则赋值value1给result;否则,分配的值value2来result。
简单的例子是,
minVal = a < b ? a : b;
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,如果变量a小于b,minVal则赋值为a;否则,minVal被赋值为b。
这是另一个使用的例子String,
// result is assigned the value "it's false"
String result = false ? "that was true" : "it's false";
Run Code Online (Sandbox Code Playgroud)
这个例子会更清楚。它为一个人的性别正确打印称呼:
// if `person.isMale()` then its Mr. else its Ms.
return = "Thank you " + (person.isMale() ? "Mr. " : "Ms. ") + person.getLastName() + ".";
Run Code Online (Sandbox Code Playgroud)
编辑:
问题:您不能在三元运算符中调用方法。
不,这是不正确的。
你可以在三元运算符内部调用一个方法,只要它返回一个与三元运算符左侧相同类型的值,
考虑这个例子,
让我们创建一个返回String值的方法,
String message(){
return "This is returned value";
}
Run Code Online (Sandbox Code Playgroud)
现在看到这个代码,
String answer = false ? "true" : message();
Run Code Online (Sandbox Code Playgroud)
这将执行得很好,因为return类型message()和变量类型answer是相同的,即String.
输出:
This is returned value
Run Code Online (Sandbox Code Playgroud)