計算機概論:C/C++程式設計
|
第3章. 讓程式選擇與決定:流程控制 |
|
|
授課教師:陳慶瀚 WWW : http://www.miat.ee.isu.edu.tw/cpp E-mail : pierre@isu.edu.tw |
|
3.6 "?"條件運算子(Conditional
Operator) "?"條件運算子提供了一個精簡快速的方法來撰寫條件式的陳述,可用來取代if-else陳述。它的語法是:
條件判斷式 ? true陳述 : false陳述;
"?"必須與":"合併使用,當條件判斷式為true,則執行true陳述;否則執行false陳述。我們看一個if-else的例子: if(value
>= 0.0) value
= value; else value
= -value; 使用"?"重寫這段程式: value
= (value >= 0.0) ? value : -value; 這行程式碼的意義是:先判斷value是否大於等於0,如果是,則將value傳給value,否則將-value傳給value。 上面兩種寫法的執行結果都是一樣得到value的絕對值。第一種if-else的寫法比較合於直覺,程式碼清晰具有可閱讀性、容易維護。不過許多有經驗的程式設計師卻偏好後者"?"寫法,因為簡潔有力。 /*------------------------------------------------------------------* //
範例程式3-10 //
A C++ program using the "?" OPERATOR //
Copyright (c) 陳慶瀚, 2001 /*------------------------------------------------------------------*
#include
<iostream.h> void
main( ) { int
age; cout
<< "輸入你的年齡:
"; cin
>> age; cout
<< "你"<<age<<"歲,”; cout
<< ((age >= 18) ? "已成年。" : "未成年。"); cout<<endl; } /*------------------------------------------------------------------* //
範例程式3-11 //
A C++ program using the "?" OPERATOR //
Copyright (c) 陳慶瀚, 2001 /*------------------------------------------------------------------* #include
<math.h>
#include
<iostream.h> void
main( ) { float
x1,x2,err; cout
<< "輸入一個理論值 :
"; cin
>> x1; cout
<< "輸入觀測值:
"; cin
>> x2; cout
<<endl<<"誤差:"; err=
(x1>x2) ? (x1-x2) : (x2-x1); cout<<"err = "<<err<<endl; } 程式執行範例: 輸入一個理論值 : 2.5 輸入觀測值 : 3.6 誤差:1.1 另一個執行範例: 輸入一個理論值 : 3.6 輸入觀測值 : 2.5 誤差:1.1 課堂練習3-6: 寫一個C++的程式,"?"條件運算子,讓使用者輸入一個正整數T,輸出T的絕對值。 提示:如果T大於等於0,則輸出T,否則輸出 -T。
|
||
計算機概論:C/C++程式設計 義守大學電機系 陳慶瀚 |