在for循环中更改索引

5
我能否在Java的for循环中更改索引?例如:
for (int j = 0; j < result_array.length; j++){
            if (item==" ") {
                result_array[j] = "%";
                result_array[j+1] = "2";
                result_array[j+2] = "0";
                j = j+2;
            }
            else result_array[j] = item;
        }

虽然在for循环中执行了j++,但是在for循环内部,我还执行了j = j + 3。这样做是否可行?


2
不确定你所说的“是否可能”是什么意思?这是可能的,而且你已经做到了。 - Michael Myers
1
这样做在概念上是错误的... - user4561223
2
在比较字符串(或任何对象)时,请避免使用==。 https://dev59.com/DnRB5IYBdhLWcg3wyqEd - Pshemo
是的,但你可能会不小心把自己搞混。 - user253751
@MichaelMyers 不对,上面的代码是错的。我应该使用 while 循环。 - munmunbb
显示剩余2条评论
1个回答

7

是的,你可以在for循环中更改索引,但这会导致混淆。在这种情况下最好使用while循环。

int j = 0;
while (j < result_array.length) {
    if (item.equals(" ")) {
        result_array[j] = "%";
        result_array[j + 1] = "2";
        result_array[j + 2] = "0";
        j = j + 2;
    } else
        result_array[j] = item;
    j++;
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接