java if语句的缩写形式

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

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

  1. if (city.getName() != null) {
  2. name = city.getName();
  3. } else {
  4. name="N/A";
  5. }

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

gopyfrb3

gopyfrb31#

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

  1. myVariable = (testCondition) ? someValue : anotherValue;

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

  1. if (testCondition) {
  2. myVariable = someValue;
  3. } else {
  4. myVariable = anotherValue;
  5. }
pw9qyyiw

pw9qyyiw2#

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

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

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

  1. Variable = Condition ? BlockTrue : BlockElse;

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

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

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

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

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

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

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

展开查看全部
knsnq2tg

knsnq2tg3#

简单明了:

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

长版本:

  1. String manType;
  2. if (hasMoney()) {
  3. manType = "rich";
  4. } else {
  5. manType = "poor";
  6. }

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

  1. String manType = "poor";
  2. if (hasMoney())
  3. manType = "rich";
展开查看全部
dsekswqp

dsekswqp4#

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

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

以下简称:

  1. Boolean isCapital = city.isCapital();
  2. String isCapitalName;
  3. if(isCapital == null) {
  4. isCapitalName = "";
  5. } else if(isCapital) {
  6. isCapitalName = "Capital";
  7. } else {
  8. isCapitalName = "City";
  9. }
mwg9r5ms

mwg9r5ms5#

方法是使用三元运算符:

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

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

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

mfpqipee6#

在java 8中:

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

e4yzc0pl7#

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

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

6ljaweal8#

使用三元运算符:

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

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

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

lbsnaicq9#

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

qacovj5a10#

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

  1. Condition ? Block 1 : Block 2

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

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

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

xnifntxz

xnifntxz11#

这是单行代码

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

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

  1. name = ("Data" != null) ? "Data" : "N/A";
  2. console.log(name);
yvt65v4c

yvt65v4c12#

  1. 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#

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

yquaqz1814#

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

  1. if (a > b) {
  2. max = a;
  3. }
  4. else {
  5. max = b;
  6. }

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

  1. 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:

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

相关问题