《C++ Primer》第5章 语句
5.1节 简单语句
练习5.1:什么是空语句?什么时候会用到空语句?
【出题思路】
理解空语句的形式和用法。
【解答】
空语句是最简单的语句,空语句由一个单独的分号构成。如果在程序的某个地方,语法上需要一条语句但是逻辑上不需要,此时应该使用空语句,空语句什么也不做。一种常见的情况是,当循环的全部工作在条件部分就可以完成时,我们通常会用到空语句。使用空语句时最好加上注释,从而令代码的阅读者知道这条语句是有意省略内容的。
练习5.2:什么是块?什么时候会用到块?
【出题思路】
理解块的形式和用法。
【解答】
块是指用花括号括起来的语句和声明的序列,也称为复合语句。一个块就是一个作用域,在块中引入的名字只能在块内部以及嵌套在块中的子块里访问。如果在程序的某个地方,语法上需要一条语句,但是逻辑上需要多条语句,此时应该使用块。块不需要以分号结束。例如,循环体必须是一条语句,但是我们通常需要在循环体内做很多事情,此时就应该把多条语句用花括号括起来,从而把语句序列转变成块。
练习5.3:使用逗号运算符(参见4.10节,第140页)重写1.4.1节(第10页)的while循环,使它不再需要块,观察改写之后的代码的可读性提高了还是降低了。
【出题思路】
使用连续的逗号运算符可以把多条语句合并为一条,这一点与块的作用类似。但是一般来说,直接使用块在程序的可读性上更有优势。
【解答】
原文的while循环使用了块,其形式是:
#include <iostream>
using namespace std;
int main()
{
int val = 0, sum = 0;
while(val <= 10)
sum += val, ++val; //代码不句清晰,可读性降低了
//{
// sum += val;
// ++val;
//} //可读性高
cout << "val======" << val << " sum = " << sum << endl;
return 0;
}
运行结果: