int ai = a [i],j;是什么?做?

时间:2019-10-27 20:06:58

标签: java

我正在从我从老师那里得到的代码中处理插入排序问题,但是我不知道这是什么意思(int ai = a [i],j;)

public static void sort(int[] a) {
 // POSTCONDITION: a[0] <= a[1] <= ... <= a[a.length-1];
 for (int i = 1; i < a.length; i++) { // step 1
   int ai = a[i], j; // step 2
   for (j = i; j > 0 && a[j-1] > ai; j--) { // step 3
     a[j] = a[j-1]; // step 4
   }
   a[j] = ai; // step 5
   // INVARIANT: a[0] <= a[1] <= ... <= a[i];
 }

2 个答案:

答案 0 :(得分:7)

int ai = a[i], j;

这将声明变量ai,并初始化为值a[i];以及未初始化的变量j

在同一条语句中声明两个或多个变量被某些人认为是令人困惑的,应避免使用(例如,它是banned by Google's style guide)。

答案 1 :(得分:5)

您可以这样声明变量

int a, b;

您可以分配这样的变量

int a = 10, b = 10;

所以代码

int ai = a[i], j;

声明两个变量(aij),但仅给ai赋值a[i]