解决方案 »

  1.   

    当i=3时, 程序就调到异常里面,i++不会执行。 所以i = 3然后无线循环了。你这样写就可以了System.out.println(greetings[i++]);
                }catch(ArrayIndexOutOfBoundsException e){
                    System.out.println("not ended!");
                }
      

  2.   

    ..你这个一样会出现楼主的情况。。
    建议直接输出“not ended” 之后加 break;直接跳出循环。反正效果一样。
      

  3.   

    这个debug  调试看看。
      

  4.   


    while(i < 4){
                try{
                    // i=3 时,就进入catch块,然后i 不会自增,再来访问greetings[i],再进catch,陷入怪圈
                    System.out.println(greetings[i]); 
                    i++;
                }catch(ArrayIndexOutOfBoundsException e){
                     System.out.println("not ended!");
                }
     }
      

  5.   

    因为你的i=3时 打印greetings[i]出现异常 无法执行i++就继续循环了 今后i一直等于3就死循环了