【发布时间】:2015-06-01 00:35:34
【问题描述】:
我正在完成 CodingBat 的 Java 练习,我遇到了 CountXX problem,它计算 xx 在字符串中出现的次数。这是我解决它的方法(我没想到它会起作用):
int countXX(String str) {
int count = 0;
for (int i = 0; i < str.length() - 1; i++) {
if ((str.charAt(i) == 'x') && (str.charAt(i+1) == 'x'))
count++;
}
return count;
}
我的问题是:for 循环的迭代如何能够“向前看”到下一次迭代?在这种情况下,它能够看到一个字符和下一个迭代字符的值。如果它可以展望未来的迭代,那不是“打败点”以整数递增吗? (我当然错过了什么!)
【问题讨论】:
-
For循环用于执行循环直到满足条件,它不会“查看”任何地方。您只需使用它来控制i可以更改的范围,然后计算 another 范围,您必须在字符串内检查(另一个范围由两个元素组成:i和i+1)。 -
这样想:您正在使用某个索引进行迭代。而已。您的循环只是一个索引
i,它会增加直到达到某个限制。你在循环中做什么完全是你的决定。您可以使用该索引i来做任何事情。您可以随意使用i!您可以将2 * i用于i * i,或者在您的情况下使用i + 1来获取下一个字符。你的方法非常好。循环本身不会“看到”任何东西。它只是为您提供了一个构造,让您拥有一个不断增加的索引i来使用您想要的方式。这就是你想要思考这些事情的方式
标签: java loops for-loop iteration charat