gpt4 book ai didi

java - Java 中的 for 循环?

转载 作者:行者123 更新时间:2023-12-01 17:19:30 24 4
gpt4 key购买 nike

问题是这样的:

编写一个方法口吃,该方法将字符串的 ArrayList 作为参数,并将每个字符串替换为该字符串中的两个。例如,如果列表在调用方法之前存储值 {"how", "are", "you?"},则它应该存储值 {"how", "how", "are", "are", "you?", "you?"} 方法完成执行后。

我的代码:

public void stutter(ArrayList<String> list){

for(int i = 0; i < list.size() * 2; i+=2){
list.add(i, list.get(i));
}
}

但是,我的代码给出了 IndexOutofBounds 错误。正确的代码应该有 for 循环:

for (int i = 0; i < list.size(); i += 2) {

为什么我的代码是错误的?当我查看正确答案时,我觉得它是错误的,因为您每次都会将 i 增加 2。那么这是否意味着到第三次循环时,i 将是 4,并且会大于 list.size() (即 3)?

顺便说一句,在 for 循环中,当您重新循环多次时,list.size() 的值会改变吗?或者在整个 for 循环过程中它会一直保持在 3 吗?

最佳答案

“正确”代码中的“技巧”是,每次向列表中添加成员时,size() 都会增长......因此,当您到达列表末尾时循环,您已将列表的大小增加了一倍。

这里的关键部分是循环的结束条件:i < list.size() 每次循环迭代时都会进行评估,并且每次都不同,因为循环内部添加了内容。

关于java - Java 中的 for 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19747089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com