1、使用延迟局部变量定义可以将变量的作用域限定在一个较小的范围内。有个简洁的例子,我们在条件中声明变量:
if(double d = prim(true)){
left /= d;
break;
}
这里d的作用域从声明处开始,到条件控制的语句结束为止。假设还有else分支,与上面的if分支对应,则d在两个分支中都有效。
2、范围for语句,它使得程序员可以依次访问指定范围内的每个元素。
int sum(vector<int>& v)
{
int s = 0;
for(int x:v)
s += x;
return s;
}
如果想在范围for循环中修改元素的值,则应使用元素的引用。
3、一种更通用的for语句中,如果我们并不清楚for循环控制的变量应该是什么类型,可以使用auto关键字:
for(auto p = begin(c); c != end(c); ++p)
{
//...通过迭代器p依次访问容器c
}
4、与for语句相比,while语句跟适合处理:一、没有一个明显的循环变量,二、程序员觉得把负责更新循环变量的语句置于循环体内更自然。
5、一般来说,可以使用goto跳出嵌套的循环或者switch语句。
void do_something(int i, int j)
{
for(i=0;i!=n;++i)
for(j=0;j!=m;j++j)
if(nm[i][j] == a)
goto found;
//无关代码
found:
//nm[i][j] == a
}