如果for循环中的条件不断变化会发生什么?

sub*_*uba 1 java for-loop arraylist

以下代码块的结果是什么?

 ArrayList<Integer> myList = new ArrayList<Integer>();
   for (int i = 0; i < myList.size(); i++) {
   myList.remove(i);
    }
Run Code Online (Sandbox Code Playgroud)

提供答案是因为循环永远不会运行.

但是对于[-1,3,28,17,9,33]的输入,我得到[3,17,33]作为输出.这是什么意思?

Jan*_*nar 6

在每次迭代时评估条件.列表开头包含[-1,3,28,17,9,33],循环开始:

  • i = 0; 0 <6为真,当前列表[ -1,3,28,17,9,33 ],删除了索引0(粗体)的元素,剩余[3,28,17,9,33]
  • i = 1; 1 <5是真实的,当前列表[3,28除去,如图17所示,9,33],具有索引1(粗体)元素,剩余[3,图17,图9中,33]
  • i = 2; 2 <4为真,当前列表[3,17,9除去,33],其中索引2(粗体)元素,剩余[3,17,33]
  • i = 3; 3 <3是假的,循环结束,仍然是[3,17,33]