C++中使用 if…else 有条件地执行多条语句
如果要在满足(或不满足)条件时执行多条语句,需要将它们组合成一个语句块。包含在大括号({})内的多条语句被视为语句块,例如:
if (condition)
{
// condition success block
Statement 1;
Statement 2;
}
else
{
// condition failure block
Statement 3;
Statement 4;
}
这样的语句块也被称为复合语句。
写在花括号{}中的内容组成的语句,就是复合语句。特别的,如果你只写了一个花括号,里面什么内容都没有,这也是一种空语句,相当于只有一个分号。
复合语句有三个主要特点:
1,整个花括号中虽然可能包括了多条语句,但是算作一个复合语句。
2,复合语句有自己的作用域,因此在离开复合语句以后,其中定义的变量会销毁。
3,复合语句的结束不需要分号,当然也许从这是一个语句的角度来说,应该要写分号才对,但是不写分号可以算作是一种福利。也就是既然已经知道它在哪里结束了,就不用再额外写结束标志了。
以下示例程序使用了一条复合语句,这条语句仅当用户输入的长度在静态字符数组的边界内时才将其复制到这个数组中。
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
cout << "Enter a line of text: " << endl;
string userInput;
getline (cin, userInput);
char copyInput[20] = { '\0' };
if (userInput.length() < 20) // check bounds
{
strcpy(copyInput, userInput.c_str());
cout << "copyInput contains: " << copyInput << endl;
}
else
cout << "Bounds exceeded: won't copy!" << endl;
return 0;
}
输出:
Enter a line of text:
This fits buffer!
copyInput contains: This fits buffer!
再次运行的输出:
Enter a line of text:
This doesn't fit the buffer!
Bounds exceeded: won't copy!
注意到将字符串复制到缓冲区中前,第 11 行检查字符串是否比缓冲区短。另外,这条 if 语句的特殊之处在于,如果条件为 true,将执行第 12~15 行的语句块(也叫复合语句)。
该文章会更新,欢迎大家批评指正。文章来源:https://www.toymoban.com/news/detail-683003.html
推荐一个零声学院的C++服务器开发课程,个人觉得老师讲得不错,
分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容
点击立即学习:C/C++后台高级服务器课程文章来源地址https://www.toymoban.com/news/detail-683003.html
到了这里,关于C++中使用 if…else 有条件地执行多条语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!