在本文中,您将学习使用不同形式的if..else语句在C ++程序中创建决策语句。
语句 |
---|
if 语句 |
if...else 语句 |
嵌套if ... else语句 |
三元运算符 |
if (testExpression) { // 如果testExpression为真将执行的语句 }
if语句在括号内评估testExpression。
如果testExpression的计算结果为true,则执行if主体内的语句。
如果testExpression的计算结果为false,则跳过if主体内部的语句。
上图描述了if语句的工作。
// 程序打印用户输入的正数 // 如果用户输入负数,则跳过 #include <iostream> using namespace std; int main() { int number; cout << "输入一个整数: "; cin >> number; // 检查数字是否为正数 if ( number > 0) { cout << "你输入了一个正整数: " << number << endl; } cout << "这个语句总是被执行。"; return 0; }
输出1
输入一个整数: 5 你输入了一个正整数: 5 这个语句总是被执行。
输出2
输入一个整数: -5 这个语句总是被执行。
如果测试表达式(test Expression)为true,则if...else在if语句的主体内执行代码,并跳过else主体内部的代码。
如果测试表达式(test Expression)为false,则在else语句主体内执行代码,并跳过if主体内的代码。
//程序检查整数是正数还是负数 //该程序将0视为正数 #include <iostream> using namespace std; int main() { int number; cout << "输入一个整数: "; cin >> number; if ( number >= 0) { cout << "您输入了一个正整数:" << number << endl; } else { cout << "您输入了一个负整数: " << number << endl; } cout << "此行始终被打印。"; return 0; }
输出结果
输入一个整数: -4 您输入了一个负整数: -4. 此行始终被打印。
if...else语句执行两个不同的代码,具体取决于测试表达式(Test expression)为true还是false。有时,必须从两种以上的可能性中进行选择。
使用嵌套if...else语句,您可以检查多个测试表达式(Test expression)并针对两个以上的条件执行不同的代码。
这意味着您可以在一个 if 或 else if 语句内使用另一个 if 或 else if 语句。
if (testExpression1) { // 如果testExpression1为真,则执行语句 } else if(testExpression2) { // 如果testExpression1为假,testExpression2为真,则执行的语句 } else{ if (testExpression 3) { // 如果testExpression1和testExpression2为假,testExpression3为真,则执行的语句 } else { // 如果所有测试表达式均为假,将执行的语句 } }
// 程序检查一个整数是正、负还是零 #include <iostream> using namespace std; int main() { int number; cout << "输入一个整数: "; cin >> number; if ( number > 0) { cout << "您输入了一个正整数:" << number << endl; } else { if (number < 0) { cout<<"您输入了一个负整数: " << number << endl; }else{ cout << "您输入了0。" << endl; } } cout << "This line is always printed."; return 0; }
输出结果
输入一个整数: 0 您输入了0。 这一行总是打印出来的。
三元运算符对3个操作数进行运算,可以代替if...else语句来使用。
以下if代码:
if ( a < b ) { a = b; } else { a = -b; }
您可以使用三元运算将以上代码替换为:
a = (a < b) ? b : -b;
三元运算符比if...else条件语句更短更具可读性。