C++ C+;中不带大括号的for循环的范围是什么+;
我知道,C++ C+;中不带大括号的for循环的范围是什么+;,c++,scope,curly-braces,C++,Scope,Curly Braces,我知道,{…}引入了一个新的作用域,这就是为什么以下方法不起作用: for(int i = 0; i < 10; i++) { // Do something... } cout << i << endl; // Error: i is not defined in this scope for(int i=0;i
{…}
引入了一个新的作用域,这就是为什么以下方法不起作用:
for(int i = 0; i < 10; i++) {
// Do something...
}
cout << i << endl; // Error: i is not defined in this scope
for(int i=0;i<10;i++){
//做点什么。。。
}
couti
的可见性范围是for()
循环体
for (int i = 0; i < 10; i++) continue;
for(inti=0;i<10;i++)continue;
只相当于
for (int i = 0; i < 10; i++) { continue; }
for(inti=0;i<10;i++){continue;}
如果省略大括号,则正文就是for()
循环头后面的语句。任何不带大括号的控制结构(If
,for
,while
等)仅适用于下一个语句。第二个示例相当于以下内容:
for (int i = 0; i < 10; i++) {
continue;
}
cout << i << endl;
for(int i=0;i<10;i++){
持续
}
这与{}也有自己的作用域(不一定在控制结构中)这一事实有关系吗?@AbrahamMurcianoBenzadon-no。请注意,I
的定义不在花括号内。这个规则本质上就是这个答案所说的:在控制结构中定义的变量的范围在受控语句的末尾结束。受控语句可以是简单语句,也可以是用大括号括起来的复合语句。
for (int i = 0; i < 10; i++) {
continue;
}
cout << i << endl;