java if语句的缩写形式

xxb16uws  于 2021-06-29  发布在  Java
关注(0)|答案(15)|浏览(769)

我知道有一种方法可以编写java if 简短的陈述。

if (city.getName() != null) {
    name = city.getName();
} else {
    name="N/A";
}

有人知道如何把上面5行的缩写写成一行吗?

gopyfrb3

gopyfrb31#

我总是忘了怎么用电脑 ?: 三元运算符。这个补充答案是一个快速的提醒。它是 if-then-else .

myVariable = (testCondition) ? someValue : anotherValue;

哪里 () 保持
if ? 手段
then : 手段 else 它与

if (testCondition) {
    myVariable = someValue;
} else {
    myVariable = anotherValue;
}
pw9qyyiw

pw9qyyiw2#

1.可以删除括号和换行符。

if (city.getName() != null) name = city.getName(); else name = "N/A";

2.您可以在java中使用?:运算符。
语法:

Variable = Condition ? BlockTrue : BlockElse;

因此,在代码中可以这样做:

name = city.getName() == null ? "N/A" : city.getName();

3.为布尔值指定条件结果

boolean hasName = city.getName() != null;

extra:for curious
在某些语言中基于 JAVA 就像 Groovy ,可以使用以下语法:

name = city.getName() ?: "N/A";

接线员 ?: 分配从我们请求的变量返回的值。在这种情况下 city.getName() 如果不是的话 null .

knsnq2tg

knsnq2tg3#

简单明了:

String manType = hasMoney() ? "rich" : "poor";

长版本:

String manType;
    if (hasMoney()) {
        manType = "rich";
    } else {
        manType = "poor";
    }

或者我如何使用它来让其他代码读取器明白:

String manType = "poor";
    if (hasMoney())
        manType = "rich";
dsekswqp

dsekswqp4#

你可以写 if, else if, else 简短的陈述。例如:

Boolean isCapital = city.isCapital(); //Object Boolean (not boolean)
String isCapitalName = isCapital == null ? "" : isCapital ? "Capital" : "City";

以下简称:

Boolean isCapital = city.isCapital();
String isCapitalName;
if(isCapital == null) {
    isCapitalName = "";
} else if(isCapital) {
    isCapitalName = "Capital";
} else {
    isCapitalName = "City";
}
mwg9r5ms

mwg9r5ms5#

方法是使用三元运算符:

name = city.getName() == null ? city.getName() : "N/A"

但是,我相信你上面的代码中有一个拼写错误,你的意思是:

if (city.getName() != null) ...
mfpqipee

mfpqipee6#

在java 8中:

name = Optional.ofNullable(city.getName()).orElse("N/A")
e4yzc0pl

e4yzc0pl7#

避免打电话 .getName() 我会用两次

name = city.getName();
if (name == null) name = "N/A";
6ljaweal

6ljaweal8#

使用三元运算符:

name = ((city.getName() == null) ? "N/A" : city.getName());

我想你把条件倒过来了-如果它是空的,你希望它的值是“n/a”。
如果城市为空呢?如果那样的话,你的密码会出错。我再加一张支票:

name = ((city == null) || (city.getName() == null) ? "N/A" : city.getName());
lbsnaicq

lbsnaicq9#

name = city.getName()!=null?city.getName():"N/A"
qacovj5a

qacovj5a10#

您可以在java中使用三元运算符。
语法:

Condition ? Block 1 : Block 2

所以在你的代码里你可以这样做,

name = ((city.getName() == null) ? "N/A" : city.getName());

有关更多信息,请参阅此资源。

xnifntxz

xnifntxz11#

这是单行代码

name = (city.getName() != null) ? city.getName() : "N/A";

下面是它的工作原理示例,在js文件中运行下面的代码并理解结果。这个 ("Data" != null) 情况和正常情况一样 if() 以及 "Data" 此条件变为真时的语句。这个 " : " 扮演别人的角色 "N/A" 是else条件的语句。希望这能帮助你理解其中的逻辑。

name = ("Data" != null) ? "Data" : "N/A";

console.log(name);
yvt65v4c

yvt65v4c12#

name = ( (city.getName() == null)? "N/A" : city.getName() );

首先是条件 (city.getName() == null) 已检查。如果是,那么 "N/A" 被指定为name或simply name="N/A" 或者从 city.getName() 分配给名称,即。 name=city.getName() .
注意事项:
条件在括号中,后面跟一个问号。这就是我写作的原因 (city.getName() == null)? . 这里的问号就在条件后面。很容易看/读/猜!
冒号左边的值( : )当条件为真时,冒号左边的值被赋值,否则冒号右边的值被赋值给变量。
以下是参考资料:http://www.cafeaulait.org/course/week2/43.html

0aydgbwb

0aydgbwb13#

name = (city.getName() != null) ? city.getName() : "N/A";
yquaqz18

yquaqz1814#

那个?:java中的运算符
在java中,您可以编写:

if (a > b) {
  max = a;
}
else {
  max = b;
}

将单个变量设置为基于单个条件的两个状态之一是if-else的常见用法,如果为它设计了一个快捷方式,条件运算符,?::。使用条件运算符,您可以在一行中重写上述示例,如下所示:

max = (a > b) ? a : b;

(a>b)?a:乙;返回两个值(a或b)之一的表达式。测试条件(a>b)。如果为true,则返回第一个值a。如果为false,则返回第二个值b。返回的值取决于条件测试,a>b。条件可以是任何返回布尔值的表达式。

wgeznvg7

wgeznvg715#

使用org.apache.commons.lang3.stringutils:

name = StringUtils.defaultString(city.getName(), "N/A");

相关问题