求高手点拨:“Java代码中的变量作用域”的问题...
高手,您好:
求您点拨:
我写的代码:

我看到:
这里的for语句,在a2,没有“被赋值”的语句出现时,应该会将在第16行定义的,在第20行,仍然属于这个第16行定义的a2的作用域的位置处,进行:
直接取第16行的a2,的操作吧...
简单滴说,我的问题是:
这里的for语句,在a2,没有“被赋值”的语句出现时,应该会将在第16行定义的,在第20行,仍然属于这个第16行定义的a2的作用域的位置处,进行:
直接取第16行的a2,的操作吧...
为什么图中的第20行代码的整型变量,“会出错”?
这个错误的“科学原理”是什么...?
谢谢高手!!
100分奉上!!
敬礼
一位日日夜夜向着理想奔跑的需要帮助的新手
2013年6月17日早晨1点18分 顶起。。。。。。
[解决办法]
因为for循环相当于代码段,是独立的一个块。
但是它比较特殊,不同于函数的是,对于函数中定义的变量,有他的作用范围;
而位于for语句之前定义的变量或属性将会被for语句识别,并可以直接使用;
而位于for语句之后的定义则会被for代码块遗忘,相当于for循环运行完成后,会将for循环以及其之前的所有变量和属性释放,程序告一段落。for循环之后的程序块将另起炉灶。
这就是为什么位于for之前的重复命名不被允许的原因。
[解决办法]
错误: 不是语句
第二十行的因为for(;;)语句中a2是变量,不是表达式,for语句的一般格式是:(括号中的三个都是表达式,可以没有)
for(表达式;表达式;表达式)语句
[解决办法]
for(a2=0;a2<=999;a2++)
第一个语句是初始化
你的没初始化就错了
[解决办法]
a2=0;a2<=999;a2++
这样写就对了
[解决办法]