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