为什么迭代器位置换一下就不报错了

问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

img

为什么它会报错

img


换一下迭代器的位置就不报错了

img

IDE没那么智能
每一步你让它干什么,它都是基于当前的数据结构在给你创建对象
你的对象变了,但是迭代器没变,它还是在集合是空的时候创建出来的那个
这其实又引出了另一个问题,就是不要在迭代过程中改变集合的长度,否则迭代会出错
另:python似乎不存在这种问题,但java和c#都不允许这样搞