for循环中的后缀和前缀

时间:2014-04-03 12:07:49

标签: java for-loop increment

我遇到了这些用于排序的示例,我对这里的后缀和前缀感到困惑 - 为什么它最后使用 - 但++ currIndex在这里?在第二个例子中它只使用++ pass和++ index?这些在排序中是否重要?非常感谢!

for (int last = n-1; last >= 1; last--) {
    int largest = indexOfLargest(theArray, last+1);
     int temp = theArray[largest]; 
     swap theArray[largest] = theArray[last]; 
     theArray[last] = temp;
 }

 private static int indexOfLargest(int[] theArray, int size) { 
     int indexSoFar = 0;
     for (int currIndex = 1; currIndex < size; ++currIndex) {
        if (theArray[currIndex]>theArray[indexSoFar])
           indexSoFar = currIndex;
      }
  return indexSoFar;

示例2:

for (int pass = 1; (pass < n) && !sorted; ++pass) {
     sorted = true; 
       for (int index = 0; index < n-pass; ++index) {
           int nextIndex = index + 1;
           if (theArray[index]>theArray[nextIndex]) {
               int temp = theArray[index];
               theArray[index] = theArray[nextIndex];
               theArray[nextIndex] = temp;
 }

2 个答案:

答案 0 :(得分:0)

简单来说,它不会影响排序。 这是你想要如何执行增量/减量

的合理决定

例如

int i = 0;

while (something) {  //any loop for/while
    array[++i] = some data; //increment i first and then next do operation
}

is similar to 

int i = 1;
while (something) {
    array[i++] = some data; //do operation and then increment
}

但重要的区别是首先执行++i,然后根据i执行您想要执行的操作。在另一种情况下,它首先在i上执行然后增量

答案 1 :(得分:0)

对于您的特定示例,++ variable_name和variable_name ++没有太大区别。 在第一个例子中,             它们是从初始索引开始的,这就是使用++ currIndex的原因。 在for循环中的相同示例中,它们从最后一个索引开始并到达它们最后使用的第一个索引 - (或者在此处使用 - )。

并且在for循环的第二个例子中,它们从第一个索引开始,这就是使用++ pass和++ index的原因。