英文:
incrementing the counter of a for-loop
问题
以下是翻译好的内容:
我在一次Hakerrank挑战中遇到了一个练习,我在其中使用了一个基本的for循环来迭代数组,然后我考虑根据条件递增循环计数器。这是我的解决方案:
public static int sockMerchant(int n, int[] ar) {
int pairs = 0;
Arrays.sort(ar);
if (n % 2 != 0) n = n - 1;
for (int i = 0; i < n - 1; i++) {
if (ar[i] == ar[i + 1]) {
++pairs;
// 递增循环计数器
i++;
}
}
return pairs;
}
我想知道在递增for循环计数器时是否会有任何影响或问题。有关已编写代码的注意事项,大家有什么想法吗?
英文:
I came by an exercise in a Hakerrank challenge where I used a basic for loop to iterate over an array, then I thought about incrementing the loop counter based on a condition. Here is my solution :
public static int sockMerchant(int n, int[] ar) {
int pairs = 0;
Arrays.sort(ar);
if (n % 2 != 0) n = n - 1;
for (int i = 0; i < n - 1; i++) {
if (ar[i] == ar[i + 1]) {
++pairs;
// incrementing the loop counter
i++;
}
}
return pairs;
}
I'm wondering if there is any incidence or issues when incrementing the for-loop counter. Any ideas guys of things to be careful about with the written code?
答案1
得分: 1
不是所有的编程语言都允许修改循环的索引。如果是这种情况,可以使用适用于该语言的合适或惯用的方法。
但是,Java允许修改循环的索引。
可以查看Greg Hewgill的详细回答。
链接:https://stackoverflow.com/a/9012318/13651978
英文:
Not all programming languages allow the modification of a loop's index. If that is the case, then use whatever method that is appropriate or idiomatic for that language.
But, Java allows the modification of a loop's index.
Take a look at the detailed answer by Greg Hewgill.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论