2

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

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

int x = (expression) ? 1 : 2;

例如

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

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

4

2 回答 2

4

你说的是条件赋值。您应该查看您编写的内容所定义的内容:

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

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

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

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

于 2011-06-09T21:40:47.337 回答
0

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

于 2011-06-09T21:41:21.523 回答