2014-12-03 58 views
2

我有一個三元運算符在我的代碼,我不希望從三元操作符返回任何值...,我們可以寫一個三元運算符沒有返回值

我可以寫一三元操作符有返回值作爲無效 ...

例子:

int a = 10; 
int b = 20; 

我可以寫爲

(a<b ? a+=b : a-=b); 

它顯示這樣的錯誤

The left-hand side of an assignment must be a variable 

謝謝你......

+1

但是爲什麼?運算符用於計算,用於流量控制的語句。 – Andrey 2014-12-03 09:40:32

+0

你不能,你需要引用你的代碼。 另一種方法,既然你想顯示'a'的變化,試試這個'a = a Secondo 2014-12-03 09:47:52

回答

7

我可以寫一個三元運營商,爲void返回值

不,你不能。

你可以做的事情是:

a = a<b ? a+b : a-b; 

甚至:

a += a<b ? b : -b; 
3

沒有,三元運營商本身就是一個表達所以它必須評估的東西。 a += b;是一個聲明把它放在一個三元不會產生語法意義。

要麼

  1. 寫入a += a < b ? b : -b;

  • 使用ifelse在明顯的方式。
  • 在工程代碼中,(1)相當習慣。

    相關問題