雖然以前學過三目運算符( 表達式1 ? 語句1 : 語句2 ),但是在學的時候並沒有體驗到三目運算符具體有什么作用。今天偶然看到一個教程,說到三目運算符可以用來簡化 if 語句,思考了一下,確實可以。
比如:
當判斷兩個數m和n的大小時,可以用
int max = ( m > n ) ? m : n ;
而不需要下面這樣
1 int max; 2 if( m > n ) 3 { 4 max = m; 5 } 6 else 7 { 8 max = n; 9 }
用 if 語句顯然過於繁瑣;然而三目運算符用於簡化 if 語句時也有它的局限性 ----只能簡化有兩個出口的 if 語句,下面這個用於成績分類的就不能夠用三目運算符來簡化了。
int score; cout << "請輸入您的成績:" << endl; cin >> score; if ( score >= 90 ) { cout << "您的成績為優秀!" << endl; } else if ( 90 > score >= 80 ) { cout << "您的成績為良好!" << endl; } else if ( 80 > score >= 70 ) { cout << "您的成績為中等!" << endl; } else if ( 70 > score >=60) { cout << "您的成績為合格!" << endl; } else { cout << "您的成績不合格! " << endl; }
對於這種多分支語句,這時候最好選擇switch語句來表達...當然如果非要用三目運算符來簡化也不是不可以,只不過就要嵌套幾層三目運算符了,可以思考一下,如果多個三目運算符嵌套會讓別人讀起代碼來很困難,自己理解來也困難,不如用switch語句明顯易懂。