java中for循环嵌套循环变量问题 25

为什么最后两行输出,ecilpse可以执行第一句,就是输出j,第二句,输出i就会报错,我明明两个变量都在循坏外面声明的,讲道理,i和j都应该都可以引用的呢,我按照第二张图... 为什么最后两行输出,ecilpse可以执行第一句,就是输出j,第二句,输出i就会报错,我明明两个变量都在循坏外面声明的,讲道理,i和j都应该都可以引用的呢,我按照第二张图的提示,直接在循坏外部初始化i=0,就可以引用i了,那为什么j没有初始化,可以引用呢?不是要各位帮忙改代码,只是想知道下,为什么会这样?有没有大腿告诉我下原理?卡在这里了 展开
 我来答
hhhb100
2018-01-05 · 超过12用户采纳过TA的回答
知道答主
回答量:17
采纳率:83%
帮助的人:6.9万
展开全部
1.
变量的初始化. 初始化之后语法上就没有问题.
2.
然后是变量的作用域问题.
看你的对比:大概可以得出的是,
for() 小括号里的变量的作用域是属于当前作用域的.j=4时,不满足条件退出了循环,最后j=4.
for(){ } 花括号里 是深一层的作用域. 所以for内的i属于花括号内, 可以理解为i'一撇(这是一个新的变量),之后离开花括号{}之后就释放/失效了.
你最后一个初始化i=0,最后结果i应该也是=0的. 不是for里面i=6
你自己其实已经试出结果了.另外我不是很懂java. 如果没错的话,最后j=4. i=0.
关键词:作用域.
whqff
2018-01-05
知道答主
回答量:2
采纳率:0%
帮助的人:2764
展开全部
1. 因为j=1这句是一定会执行的,那就表示j已经初始化了;
2. 而i=1这句在循环体内,如果外层循环条件不成立的话,那么i=1就不会执行的,所以i是未初始化的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式