java在一个两层for循环里只用一个i做计数器为什么最后结果循环次数不对啊?

publicclassNineWrong{publicstaticvoidmain(String[]args){inta=1;intb=1;intresult=0;int... public class NineWrong { public static void main(String[] args) { int a = 1; int b = 1; int result = 0 ; int i; for (i=0;i <9 ;i++ ) { a = 1; for (i=1;i <= b ;i++ ) { if( new Integer(i).equals(b)) { result = a*b; System.out.println(a+" * "+b+" = "+result+" "); } else { result = a*b; System.out.print(a+" * "+b+" = "+result+" "); } a++; } b++; } }}以上是代码,把i用m和n区分开就没有这个问题是正确的99乘法了,刚学不是很懂。。 展开
 我来答
GTA小鸡
高粉答主

2017-01-13 · 醉心答题,欢迎关注
知道大有可为答主
回答量:2.6万
采纳率:78%
帮助的人:1.3亿
展开全部
双循环用同一个计数器,内层循环会改变计数器的值,因而下一次外层循环时计数器的值就是错误的,外层循环不能正确运行。这是新手易犯的错误。
追问
但是为什么总共只少两次呢?内层循环应该不止循环了2次啊
追答
内层循环的结束条件b在从1逐次增加,因而每次内层循环结束时i的值刚好就是下一次外层循环i本来的正确值,这只是巧合罢了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式