我试图删除arraylist中的所有元素,deck但由于某种原因deck.size()应该是52返回26并且只删除了26个元素.
public void remove()
{
int k = 0;
while(k < deck.size())
{
deck.remove(0);
k++;
}
}
Run Code Online (Sandbox Code Playgroud)
我打电话给numberOfCards()在main返回deck.size(),并返回52,所以我不知道为什么deck.size()在只取出返回26.
因为计算机完全按照你的要求去做.
k为0. deck.size()哪个返回52. 0 < 52,所以它进入循环.deck.k(将其设置为1).deck.size()哪个返回51. 1 < 51,所以它再次进入循环.deck.k(将其设置为2).deck.size()哪个返回50. 2 < 50,所以它再次进入循环.k(将其设置为25).deck.size()哪个返回27. 25 < 27,所以它再次进入循环.deck.k(将其设置为26).deck.size()返回26. 26 < 26是不是真实的,所以它跳到循环的结束,即使还有留在26个元素deck.