在本文中,您將學(xué)習(xí)使用不同形式的if..else語句在C ++程序中創(chuàng)建決策語句。
語句 |
---|
if 語句 |
if...else 語句 |
嵌套if ... else語句 |
三元運算符 |
if (testExpression) { // 如果testExpression為真將執(zhí)行的語句 }
if語句在括號內(nèi)評估testExpression。
如果testExpression的計算結(jié)果為true,則執(zhí)行if主體內(nèi)的語句。
如果testExpression的計算結(jié)果為false,則跳過if主體內(nèi)部的語句。
上圖描述了if語句的工作。
// 程序打印用戶輸入的正數(shù) // 如果用戶輸入負數(shù),則跳過 #include <iostream> using namespace std; int main() { int number; cout << "輸入一個整數(shù): "; cin >> number; // 檢查數(shù)字是否為正數(shù) if ( number > 0) { cout << "你輸入了一個正整數(shù): " << number << endl; } cout << "這個語句總是被執(zhí)行。"; return 0; }
輸出1
輸入一個整數(shù): 5 你輸入了一個正整數(shù): 5 這個語句總是被執(zhí)行。
輸出2
輸入一個整數(shù): -5 這個語句總是被執(zhí)行。
如果測試表達式(test Expression)為true,則if...else在if語句的主體內(nèi)執(zhí)行代碼,并跳過else主體內(nèi)部的代碼。
如果測試表達式(test Expression)為false,則在else語句主體內(nèi)執(zhí)行代碼,并跳過if主體內(nèi)的代碼。
//程序檢查整數(shù)是正數(shù)還是負數(shù) //該程序?qū)?視為正數(shù) #include <iostream> using namespace std; int main() { int number; cout << "輸入一個整數(shù): "; cin >> number; if ( number >= 0) { cout << "您輸入了一個正整數(shù):" << number << endl; } else { cout << "您輸入了一個負整數(shù): " << number << endl; } cout << "此行始終被打印。"; return 0; }
輸出結(jié)果
輸入一個整數(shù): -4 您輸入了一個負整數(shù): -4. 此行始終被打印。
if...else語句執(zhí)行兩個不同的代碼,具體取決于測試表達式(Test expression)為true還是false。有時,必須從兩種以上的可能性中進行選擇。
使用嵌套if...else語句,您可以檢查多個測試表達式(Test expression)并針對兩個以上的條件執(zhí)行不同的代碼。
這意味著您可以在一個 if 或 else if 語句內(nèi)使用另一個 if 或 else if 語句。
if (testExpression1) { // 如果testExpression1為真,則執(zhí)行語句 } else if(testExpression2) { // 如果testExpression1為假,testExpression2為真,則執(zhí)行的語句 } else{ if (testExpression 3) { // 如果testExpression1和testExpression2為假,testExpression3為真,則執(zhí)行的語句 } else { // 如果所有測試表達式均為假,將執(zhí)行的語句 } }
// 程序檢查一個整數(shù)是正、負還是零 #include <iostream> using namespace std; int main() { int number; cout << "輸入一個整數(shù): "; cin >> number; if ( number > 0) { cout << "您輸入了一個正整數(shù):" << number << endl; } else { if (number < 0) { cout<<"您輸入了一個負整數(shù): " << number << endl; }else{ cout << "您輸入了0。" << endl; } } cout << "This line is always printed."; return 0; }
輸出結(jié)果
輸入一個整數(shù): 0 您輸入了0。 這一行總是打印出來的。
三元運算符對3個操作數(shù)進行運算,可以代替if...else語句來使用。
以下if代碼:
if ( a < b ) { a = b; } else { a = -b; }
您可以使用三元運算將以上代碼替換為:
a = (a < b) ? b : -b;
三元運算符比if...else條件語句更短更具可讀性。