三目運算符

三目運算符

計算機語言重要組成部分
三目運算符,又稱條件運算符,是計算機語言(c,c++,java等)的重要組成部分。它是唯一有3個操作數的運算符,有時又稱為三元運算符。一般來說,三目運算符的結合性是右結合的。[1]
  • 中文名:三目運算符
  • 分類:C語言,php,JAVA
  • 運算符數量:3
  • 屬于:計算機語言

定義

對于條件表達式b ? x : y,先計算條件b,然後進行判斷。如果b的值為true,計算x的值,運算結果為x的值;否則,計算y的值,運算結果為y的值。一個條件表達式絕不會既計算x,又計算y。條件運算符是右結合的,也就是說,從右向左分組計算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)執行。 

? : ; "?"運算符的含義是:先求表達式1的值,如果為真,則執行表達式2,并返回表達式2的結果;如果表達式1的值為假,則執行表達式3,并返回表達式3的結果。

可以理解為條件 ? 結果1 : 結果2 裡面的?号是格式要求。也可以理解為條件是否成立,條件成立為結果1,否則為結果2。

注意:在C語言中,結果1 和 結果2的類型必須一緻。

a ? b : c簡單理解方式為:

1

2

3

4

5

6

7

8

9

10

11

12

13

if(a) {

 

 

    return b;

 

 

} else {

 

 

    return c;

 

 

}

例子

eg:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

int a = 2;

 

int c = 3;

 

int b = (a > c) ? a : c;

 

cout << "b:" << b << endl;

 

/*

cout是c++語言的輸出符号。

endl英語意思是end of line,即一行輸出結束,然後輸出下一行。

cout<

cout<<"b:"<

*/

這樣輸出的結果是:b:3

eg:

1

2

3

4

5

int a = 1, b = 2, z, c = 3;

 

z = a > b ? a : (b > c ? b : c);

 

cout << "z:" << z << endl;

這樣輸出的結果是:z:3

eg:

1

2

3

4

5

int a = 1, b = 2, z;

 

z = a > b ? a : b;  //去了括号

 

cout << "z:" << z << endl;

這樣的輸出的結果是:z:2

一般來說,三目運算符的結合性是右結合的

但是這點在ANSI C中并沒有明确規定

所以它的執行順序有時是由編譯器決定的

在PHP中運用實例如下:

1

2

3

4

5

6

7

8

9

10

11

$a = (1 > 0) ? 'zhen' : 'jia';  // 三目運算符 與下邊if語句意思一樣

 

if(1 > 0) {

 

$a = 'zhen';

 

} else {

 

$a = 'jia';

 

}

在javascript中運用實例如下:

1

2

3

4

5

6

7

8

9

10

11

12

1 > 2 ? console.log("true") : console.log('false');

// 三目運算符 與下邊if語句意思一樣

 

if(1 > 2) {

 

console.log("true")

 

} else {

 

console.log('false');

 

}

相關詞條

相關搜索

其它詞條