为什么数组的值[d]为5?

时间:2015-03-13 06:01:03

标签: java arrays

我是数组新手......我很难理解数组如何在这个CODE中工作...... 我正在冒泡。我唯一不理解的是,变量d可以放在变量数组中吗?

import java.util.Scanner;

   public class bubbleSort
  {
  public static void main(String []args)
  {
        int n, c, d, swap;
        Scanner in = new Scanner(System.in);

        System.out.print("Input number of integers to sort");
        n = in.nextInt();

        int array[] = new int[n];

        System.out.println("Enter " + n + " integers");

        for (c = 0; c < n; c++)
          array[c] = in.nextInt();

        for (c = 0; c < ( n - 1 ); c++)
        {
              for (d = 0; d < n - c - 1; d++)
              {
                if (array[d] > array[d+1])
                {
                    System.out.println("array d:" + array[d]); // value is 5
                  swap       = array[d];
                  array[d]   = array[d+1];
                  array[d+1] = swap;
                }
             }
        }

        System.out.println("Sorted list of numbers");

        for (c = 0; c < n; c++)
          System.out.println(array[c]);
}
}

2 个答案:

答案 0 :(得分:1)

当它处于循环中时,它不是变量。 d变量将被赋予一个数值。在你的情况下,每次循环运行d将具有从0到nc-1的值,这将使数组[0],数组[1] .. ......所以这将通过以下示例说明: 假设你有一个名为:

的数组
int[] array={1,2,3,4,5};

所以当你使用for循环遍历这个数组时:

for (int i = 0; i< 5; i++)
          system.out.println(array[i]);
}

每次循环运行数组都会像

array[0] 
array[1]
array[2]
array[3]
array[4]

并打印出类似

的值
1
2
3
4
5

分别 这表明变量i不被视为变量,而是数值

答案 1 :(得分:0)

数组的索引从数组的0开始到长度为1。所以索引只能有数值(整数)。 如果你在下面这样做,它将无法工作(长,浮动,双重

    long c=1;
    int arr[]={1,2,3};
    System.out.println(arr[c]);//this will not work as index is long

如果要将任何索引变量与 int(short,byte,char)兼容,则可以从数组中获取值。

     int c=1;
    int arr[]={1,2,3};
    System.out.println(arr[c]);// this will work fine and print element at index 1 and that is 2
对于后一个代码,

输出为2。