【问题标题】:Multiple statements if condition is true in shorthand if多个语句 if 条件为 true 的简写 if
【发布时间】:2011-09-12 01:55:31
【问题描述】:

我最近发现了 if 语句的简写,在网上搜索后我找不到明确的答案。

如果条件为真/假,是否可以执行2条语句?

int x = (expression) ? 1 : 2;

例如

int x = (expression) ? 1 AND 2 : 3;

鉴于我没有遇到他们使用它的示例,我想这是不可能的,但我不想错过。

【问题讨论】:

  • 你试过了吗,还是在等我们为你做?
  • 我不确定我是否理解。您希望x 同时成为12?如果您正在考虑嵌套三元 if 测试,是的,这是可能的。

标签: java shorthand-if


【解决方案1】:

你说的是条件赋值。你应该看看你写的东西是什么定义的:

int x = (expression) ? 1 AND 2 : 3;

这是评估“表达式”,如果为真,则执行“1 AND 2”,然后将值分配给 x。如果“表达式”评估为假,则评估“3”并将其分配给 x。因此,您绝对可以这样做:

int x = (expression) ? GetInt1() + GetInt2() : 345;

重要的是,您发现的不仅仅是 if 的简写。这是有条件的赋值

【讨论】:

  • 这是对条件表达式的赋值。
【解决方案2】:

你不能让一个语句返回两个值,这就是三元组所做的一切。如果它是一个返回值的方法,那就不是简写

【讨论】:

  • 语句根本不返回值,表达式会;三元表达式是表达式,而不是语句;它当然不会返回两个值。 -1
猜你喜欢
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 2013-12-17
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多