首页  >  问答  >  正文

java - 为什么这个循环我跳不出来?

1.问题描述:一直死循环,反复打印,直到出错

2.相关代码

int[] Aarray = new int[]{2,4,5,6,2};
int[] Barray = new int[]{3,6,2,4,6};

for (int i = 0 ;i < 10 ;i ++ )
{
    if (i < 5)
    {
        System.out.print(Aarray[i] + "\t");
    }
    
    else
    {    
        i -= 5;
        System.out.print(Barray[i] + "\t");
    }
}


扔个三星炸死你扔个三星炸死你2686 天前814

全部回复(9)我来回复

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:23:20

    当i = 1, 2, 3, 4 不说了,打印1 2 3 4
    当i = 5时进入else语句块
    i -= 5 即为 i = i-5 结果是i = 0吧,然后i++

    然后i又从1 开始循环。for循环的终止条件 i < 10永远不能终止

    回复
    0
  • 漂亮男人

    漂亮男人2017-06-12 09:23:20

    跳出来就有鬼了。。。。

    回复
    0
  • 扔个三星炸死你

    扔个三星炸死你2017-06-12 09:23:20

    i -= 5; 是不是写错了。

    每次循环时,i++i 加 1,但是 i -= 5; 又把 i 减 5。

    回复
    0
  • 怪我咯

    怪我咯2017-06-12 09:23:20

    i=5时,if不成立,进入else,
    做完 i -= 5; 结果就是 i=0;
    然后出else,i++之后,i=1;
    又进入if
    ...
    当i=5时
    ...

    回复
    0
  • 高洛峰

    高洛峰2017-06-12 09:23:20

    简单,你把程序自己脑子里走一遍就清楚了啊,一开始i=0,小于5,输出,然后i++到1,继续小于5,在输出,一直这样直到i=5,然后i<5不成立,就走else那个分支,i-=5;i又小于0了,然后又开始进入下一次循环像开头那样,所以出现无限死循环

    回复
    0
  • 欧阳克

    欧阳克2017-06-12 09:23:20

    你把i每个值的情况都看一下就一目了然了,在i>5的时候,i就进入了else,这个时候i又变成了0,也就是说i永远到不了i>10这个终止循环的条件

    回复
    0
  • 某草草

    某草草2017-06-12 09:23:20

    逻辑错了,加到6后,又减去5,回到1,然后又每次加1,加到6之后,又减去5,回到1,不断地循环。

    回复
    0
  • ringa_lee

    ringa_lee2017-06-12 09:23:20

    逻辑有问题 无限死循环

    回复
    0
  • 迷茫

    迷茫2017-06-12 09:23:20

    这种问题建议先找个入门书或者入门视频看10分钟

    回复
    0
  • 取消回复