C++语言中的大多数语句都以分号结束,一个表达式,比如ival + 5,末尾加上分号就变成了表达式语句。表达式语句的作用是执行表达式并丢弃掉求值结果。
空语句
最简单的语句是空语句,就是一个分号。
如果在程序的某个地方,语法上需要一条语句但是逻辑上不需要,此时应该使用空语句。一种常见的情况是,当循环的全部工作在条件部分就可以完成时,我们通常会用到空语句。例如,我们想读取输入流的内容直到遇到一个特定的值为止,除此之外什么事情也不做:
#include<iostream>
using namespace std;
int main()
{
string s;
while (cin>>s&&s=="hello world")
{
;
}
return 0;
}
PS:在使用空语句的时候,需要加上注释,让使用者知道此处空语句的作用是什么。
别漏写分号,也别多写分号
漏写分号实际上代表着,此句语句还未结束。
多写分号代表着,前面一句语句结束后后面跟着一个空语句,本也没有错,但是如果放在循环或者判断条件的后面,那问题就大了。
复合语句(块)
复合语句是指用花括号括起来的( 可能为空的)语句和声明的序列,复合语句也被称作块。 一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。通常,名字在有限的区域内可见,该区域从名字定义处开始,到名字所在的(最内层)块的结尾为止。
如果在程序的某个地方,语法上需要一条语句, 但是逻辑上需要多条语句,则应该使用复合语句。例如,while或者for的循环体必须是一条语句,但是我们常常需要在循环体内做很多事情,此时就需要将多条语句用花括号括起来,从而把语句序列转变成块。
举个例子,我们常写的打印多次hello world:
#include<iostream>
using namespace std;
int main()
{
for (int i = 0; i < 3; ++i)
{
cout << "hello world";
cout << endl;
}
return 0;
}
PS:块不以分号作为结束。相同的空块的作用等效于空语句。