黑马程序员技术交流社区

标题: for 循环变量的范围 [打印本页]

作者: mdb    时间: 2014-3-30 18:46
标题: for 循环变量的范围
本帖最后由 mdb 于 2014-3-30 22:08 编辑
  1.             for (int i = 0; i < 9; i++)
  2.             {
  3.             }
  4.             int i = 9;
复制代码

for循环外面的另一个i变量编译不通过,为什么呢,for里的i的范围不是在for循环里面吗,为什么范围外面不能重新声明呢?
作者: 张变    时间: 2014-3-30 19:25
变量作用的范围是从声明它的从开始到结束的大括号之间。for循环外面的声明的i变量的作用域包括for循环,而你在for循环内再声明,就重复声明了。
作者: 百川    时间: 2014-3-30 20:41
请仔细观察变异不通过的理由,是你所声明的变量在“子级中已经表示其他内容”。
在类里面声明变量是不分先后的,
也就是说声明在for循环前面和后面都会在整个类内起作用,
而在类里面声明的for相当于这个类的一个子级。这样,父级和子级都有int i的变量。
这也是编译不通过的原意。
作者: czwanglei    时间: 2014-3-30 21:14
变量不可以重新声明。。。
作者: mdb    时间: 2014-3-30 22:07
百川 发表于 2014-3-30 20:41
请仔细观察变异不通过的理由,是你所声明的变量在“子级中已经表示其他内容”。
在类里面声明变量是不分先 ...

是的,忘了这一点...
作者: 风逝110    时间: 2014-3-31 08:42
如果你想打印for循环里面的i的值,在外部可以直接打印,但是你重新定义一个i,这时如果打印的话,编译器知道你指定的是哪一个i吗?变量名称需要注意,尽量不要用同名的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2