我有一个值表,我需要比较所有这些值。问题是,我不想两次比较相同的值(例如,循环比较值1 - 2,1 - 3,2 - 1和2 - 1与1 - 2相同)。我在循环中写了一个循环,如下所示:
for (int i = 0; i < numberOfSets; i++) {
for (int j = 1; j < numberOfSets; j++) {
//compare element i and j here
}
}
但是如何修改此循环以跳过重复?到目前为止我尝试的是在i == j:
时输入jfor (int i = 0; i < numberOfSets; i++) {
for (int j = 1; j < numberOfSets; j++) {
if(i == j) {
j++;
} else {
//compare element i and j
}
}
}
但它似乎无法正常工作。有没有更好的方式循环我想要的方式?
答案 0 :(得分:3)
只需使用j = i + 1
开始内循环。
for (int i = 0; i < numberOfSets; i++) {
for (int j = i + 1; j < numberOfSets; j++) {
// do stuff
}
}
答案 1 :(得分:1)
for (int i = 0; i < numberOfSets; i++) {
for (int j = i+1; j < numberOfSets; j++) {
//compare element i and j here
}
}
内部循环跳过外部循环中包含的元素