Mak*_*kky 173 java if-statement ternary-operator
我知道有一种方法可以if用简短的形式编写Java 语句.
if (city.getName() != null) {
name = city.getName();
} else {
name="N/A";
}
Run Code Online (Sandbox Code Playgroud)
有谁知道如何将上述5行的短格式写成一行?
duf*_*ymo 374
使用三元运算符:
name = ((city.getName() == null) ? "N/A" : city.getName());
Run Code Online (Sandbox Code Playgroud)
我认为你有条件向后 - 如果它是null,你想要的值是"N/A".
如果城市是空的怎么办?在这种情况下,你的代码*会打到床上.我要添加另一张支票:
name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
Run Code Online (Sandbox Code Playgroud)
Pet*_*rey 27
为了避免.getName()两次打电话我会用
name = city.getName();
if (name == null) name = "N/A";
Run Code Online (Sandbox Code Playgroud)
Sam*_*erg 25
这样做的方法是使用三元运算符:
name = city.getName() == null ? city.getName() : "N/A"
Run Code Online (Sandbox Code Playgroud)
但是,我相信你上面的代码中有一个拼写错误,你的意思是说:
if (city.getName() != null) ...
Run Code Online (Sandbox Code Playgroud)
Rez*_*ngi 19
的?:Java中的运算符
在Java中你可以写:
if (a > b) {
max = a;
}
else {
max = b;
}
Run Code Online (Sandbox Code Playgroud)
基于单个条件将单个变量设置为两个状态之一是if-else的常见用法,即已为其设计了一个快捷方式,条件运算符,?:.使用条件运算符,您可以在一行中重写上面的示例,如下所示:
max = (a > b) ? a : b;
Run Code Online (Sandbox Code Playgroud)
(a> b)?a:b; 是一个表达式,它返回两个值a或b中的一个.测试条件(a> b).如果为真,则返回第一个值a.如果为false,则返回第二个值b.无论返回哪个值取决于条件测试,a> b.条件可以是返回布尔值的任何表达式.
dig*_*ebs 17
在java 8中:
name = Optional.ofNullable(city.getName()).orElse("N/A")
Run Code Online (Sandbox Code Playgroud)
Sur*_*gch 16
我总是在伪造如何使用?: 三元运算符.这个补充答案是一个快速提醒.这是简写if-then-else.
myVariable = (testCondition) ? someValue : anotherValue;
Run Code Online (Sandbox Code Playgroud)
哪里
() 持有 if? 手段 then: 手段 else它是一样的
if (testCondition) {
myVariable = someValue;
} else {
myVariable = anotherValue;
}
Run Code Online (Sandbox Code Playgroud)
Ign*_*ers 15
1.您可以删除括号和换行符。
if (city.getName() != null) name = city.getName(); else name = "N/A";
Run Code Online (Sandbox Code Playgroud)
2.你可以在java中使用?:运算符。
句法:
Variable = Condition ? BlockTrue : BlockElse;
Run Code Online (Sandbox Code Playgroud)
所以在你的代码中你可以这样做:
name = city.getName() == null ? "N/A" : city.getName();
Run Code Online (Sandbox Code Playgroud)
3.布尔赋值条件结果
boolean hasName = city.getName() != null;
Run Code Online (Sandbox Code Playgroud)
额外: 为了好奇
在某些基于JAVAlike 的语言中Groovy,您可以使用以下语法:
name = city.getName() ?: "N/A";
Run Code Online (Sandbox Code Playgroud)
运算符?:分配从我们要求的变量返回的值。在这种情况下,city.getName()if的值不是null。
小智 8
您可以用if, else if, else简短的形式编写语句.例如:
Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";
Run Code Online (Sandbox Code Playgroud)
这是简短的形式:
Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
isCapitalName = "";
} else if(isCapital) {
isCapitalName = "Capital";
} else {
isCapitalName = "City";
}
Run Code Online (Sandbox Code Playgroud)
小智 7
这是一行代码
name = (city.getName() != null) ? city.getName() : "N/A";
Run Code Online (Sandbox Code Playgroud)
这是它的工作原理的示例,运行 js 文件中的以下代码并了解结果。这("Data" != null)是我们在正常情况下所做的条件if(),也是"Data"该条件成立时的声明。这" : "与 else 一样,"N/A"是 else 条件的语句。希望这有助于您理解逻辑。
name = (city.getName() != null) ? city.getName() : "N/A";
Run Code Online (Sandbox Code Playgroud)
小智 5
你可以这样让它变得更容易:
name = city.getName() == null ? city.getName() : "N/A"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
544784 次 |
| 最近记录: |