简单的代码,想不通输出为什么会这样。

qq_23146367 2019-11-17 08:09:21
eclispe里面测试了一下如下代码,无论跑多少次都是没有输出。

如果改成!=2,是有输出1的。

我理解i.hasNext()并不会移动指针,只会返回指针是否存在元素,

那第一次判断的时候

i.hasNext()为true,

temp = (int)i.next() :迭代器指针指向1,

进入第二次循环判断,

i.hasNext()应该还是ture,那应该会输出2。

究竟是哪里想错了呢?


public class testWhile {

public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
Iterator i = list.iterator();
int temp = 0;
while(i.hasNext()&&((temp = (int)i.next())!=1)){
System.out.println(temp);
}

}

}
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT_熊 2019-11-17
  • 打赏
  • 举报
回复
引用 2 楼 qybao 的回复:
while循环第一次不满足条件就已经退出循环了,第二次循环根本就没执行
好好理解循环的循环条件的作用,就是用来控制何时退出循环的,一旦退出循环,循环里的代码就不再执行

正解!
qybao 2019-11-17
  • 打赏
  • 举报
回复
while循环第一次不满足条件就已经退出循环了,第二次循环根本就没执行 好好理解循环的循环条件的作用,就是用来控制何时退出循环的,一旦退出循环,循环里的代码就不再执行

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧