在 JAVA 中,for 循环如何不超出单维数组的界限?



看一下:

int[] v = new int[10];    
for (int i = 0; i < v.length; i++) {
            for (int j = i + 1; j < v.length; j++) {
                if (v[i] > v[j]) {
                    aux = v[i];
                    v[i] = v[j];
                    v[j] = aux;
                }
            }
        }

这起作用。,有人可以解释如何吗?

即使我从i + 1启动j,此数组如何脱离界限?这是如何工作的?

您已经将初始化与条件混淆了。loop()的语法为 -

  for(initialization; condition; updation)
    { 
    statement(s)
       }

因此,即使您从1开始j(j = i 1和i = 0的初始值),j也只会更新,直到它等于数组的长度,即10。= 10(当i = 9时),控件将从j for loop()以及何时将其转移到i for loop()时,我将更新为10for loop()也。

我认为您需要返回基础知识进行循环

a循环可以定义为 for(before starting;continue when true;do at end of pass))

因此,一旦J等于v.length,它将停止。如果您从I。

开始,则只能减少1个循环

您的for循环是由保持跟踪,条件和迭代的变量组成的。在您的代码中,for循环的条件指出,保持跟踪的变量不能超过v的长度。如果符合IF条件,则作为交换索引。外圈就在那里,以确保检查V的每个索引并在正确的位置。

最新更新