java中循环变量值的问题

for(intnum=1;num<=9;num++){inti=1;while(i<=num){System.out.print(i+"*"+num+"="+i*num+... for(int num=1 ;num<=9 ;num++) {
int i=1;
while(i<=num) {
System.out.print(i+"*"+num+"="+i*num+"\t");
i++;
}
System.out.println();
}
这个循环中,假如设num=1那么在while循环中,循环结束后,变量i的最终赋值不是等于2吗?
展开
 我来答
gdmmd
2018-03-05 · TA获得超过1279个赞
知道大有可为答主
回答量:1581
采纳率:66%
帮助的人:1016万
展开全部
是的。 分析正确。但是进入下一次循环时,i重新赋值了。i继续从1开始。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ccfly1987
2018-03-05 · TA获得超过253个赞
知道小有建树答主
回答量:255
采纳率:83%
帮助的人:66.8万
展开全部
你自己的回答是正确的,在num=1循环内,while代码块后,i 是等于 2
追问
当i=1,num=1  为真循环  经过i++了 i=2,在回过头去看  i=2 num=1  内循环不成立了 跳到外循环继续执行 但是此时i应该为2,下次进入内循环的时候应该从i=2开始算啊。。
追答
循环内每次都是单独定义的 int i=1; i是循环内局部变量哦。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangyonde
2018-03-05 · TA获得超过154个赞
知道小有建树答主
回答量:220
采纳率:66%
帮助的人:79.3万
展开全部
这是九九乘法口诀的代码,当num=1时,最终循环值还是1。
追问
当i=1,num=1  为真循环  经过i++了 i=2,在回过头去看  i=2 num=1  内循环不成立了 跳到外循环继续执行 但是此时i应该为2,下次进入内循环的时候应该从i=2开始算啊。。
追答
我看懂问题了,我回答了输出的值。是的当这个循环结束时i的值为2,此时while循环不成立,跳过此循环,接着for循环也跟着进入下一次循环。因为i变量是在局部,for循环进入下一次循环时,i变量已经重置为初始值,所以此轮的i 是从初始值计算的。这是java的垃圾回收机制特性。如果i变量是定义在for循环的上面,结果就和你想像的一样,不信你修改代码试试就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式