public class Show {
    public static ArrayList Ara = new ArrayList();
    public static Iterator snake;

    public static void kai(){
        Ara.add(1);
        Ara.add(2);
        Ara.add(5);
        Ara.add(7);
        Ara.add(10);
        Ara.add(13);
        snake = Ara.iterator();
        while(snake.hasNext()){
            System.out.println(snake.next());
            if(snake.next()==7)break;
        }
    }

    public static void main(String[] args){
        kai();
    }
}


执行时,将连续打印1、5、10。我该如何解释?我预计会打印出1、2、5。

最佳答案

您应该像下面这样更改代码:



public static void kai(){
    Ara.add(1);
    Ara.add(2);
    Ara.add(5);
    Ara.add(7);
    Ara.add(10);
    Ara.add(13);
    snake = Ara.iterator();
    while(snake.hasNext()){
        int value = (int) snake.next();
        System.out.println(value );
        if(value ==7)break;
    }
}


这样,您只需要在while循环内调用iterator.next()一次。

10-08 13:59