C++中使用 if…else 进行条件编程
在 C++中,使用 if…else 有条件地执行代码,这种结构类似于下面这样:
if (conditional expression)Do something when expression evaluates true;
Else // OptionalDo something else when condition evaluates false;
因此,在用户输入 m 时将两个数相乘,否则将两个数相加的 if…else 结构类似于下面这样:
if (userSelection == 'm')result = num1 * num2; // multiply
elseresult = num1 + num2; // add
注意:
在 C++中,表达式的结果为 true 意味着不为 false,而 false 为零。因此,在条件语句中,只要表达式的结果不为零(负数或正数),就被视为结果为 true。
以下程序演示了 if…else 结构。它让用户决定要将两个数相乘还是相加,因此使用条件处理来生成所需的结果:
#include <iostream>
using namespace std;int main()
{cout << "Enter two integers: " << endl;int num1 = 0, num2 = 0;cin >> num1;cin >> num2;cout << "Enter \'m\' to multiply, anything else to add: ";char userSelection = '\0';cin >> userSelection;int result = 0;if (userSelection == 'm')result = num1 * num2;elseresult = num1 + num2;cout << "result is: " << result << endl;return 0;
}
输出:
Enter two integers:
25
56
Enter 'm' to multiply, anything else to add: m
result is: 1400
再次运行的输出:
Enter two integers:
25
56
Enter 'm' to multiply, anything else to add: a
result is: 81
分析:
注意到第 15 行包含 if, 而第 17 行包含 else。这些代码告诉编译器, 如果 if 后面的表达式 (userSelection == ‘m’)
为 true,则执行乘法运算;如果该表达式为 false,则执行加法运算。如果用户输入的字符为 m(区分大小写)时,表达式 (userSelection == ‘m’)
将为 true,否则将为 false。因此,这个简单的程序演示了如何让应用程序在不同的情形下采取不同的行动。
注意:
if…else 结构的 else 部分是可选的。如果在表达式为 false 时不执行任何操作,可以不使用这部分。
警告:
在示例程序中,如果第 15 行为下面这样:
15: if (userSelection == 'm');
这个 if 结构将毫无意义,因为它在同一行以空语句(分号)结束。务必小心避免这样做,
因为 if 没有配套的 else 并不会导致编译错误。
有些优秀的编译器在“控制语句为空”时会发出警告。
该文章会更新,欢迎大家批评指正。
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程