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吗? 展开
int i=1;
while(i<=num) {
System.out.print(i+"*"+num+"="+i*num+"\t");
i++;
}
System.out.println();
}
这个循环中,假如设num=1那么在while循环中,循环结束后,变量i的最终赋值不是等于2吗? 展开
展开全部
是的。 分析正确。但是进入下一次循环时,i重新赋值了。i继续从1开始。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你自己的回答是正确的,在num=1循环内,while代码块后,i 是等于 2
追问
当i=1,num=1 为真循环 经过i++了 i=2,在回过头去看 i=2 num=1 内循环不成立了 跳到外循环继续执行 但是此时i应该为2,下次进入内循环的时候应该从i=2开始算啊。。
追答
循环内每次都是单独定义的 int i=1; i是循环内局部变量哦。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是九九乘法口诀的代码,当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循环的上面,结果就和你想像的一样,不信你修改代码试试就知道了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询