2011-06-09 64 views
2

我最近发现了速记if语句,并且在线搜索后我找不到明确的答案。多条语句如果条件为真如果是

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

int x = (expression) ? 1 : 2; 

例如

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

看到,因为我还没有碰到过一个例子comne,他们用它我想这是不可能的,但我不想错过。

+0

你还试过吗,还是你在等我们为你做? – 2011-06-09 21:40:55

+1

我不知道我明白。你希望'x'在同一时间是'1'和'2'吗?如果你在考虑嵌套三元if-tests,是的,这是可能的。 – whirlwin 2011-06-09 21:41:53

回答

4

你在谈论有条件的分配。你应该看看什么是你写的定义:

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

即评估“表达”,如果真的执行“1和2”,那么将数值为x。如果“表达式”评估为false,则评估“3”并将其分配给x。因此,你绝对可以做这样的事情:

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

重要的是,你发现不只是一个速记,如果。条件是转让

+0

我看到我犯的思想错误,你是对的 – Patrick 2011-06-09 21:45:02

+0

这是一个条件表达式的分配。 – 2011-06-09 22:22:58

0

你不能有一个语句返回两个值,这就是三元的全部。如果它是一种返回值的方法,那么它并不是一个短命的手段

+0

语句根本不返回值,表达式;三元表达是一种表达,而不是一种表述;它肯定不会返回两个值。 -1 – EJP 2013-12-10 06:11:07