数组输出结构

时间:2016-09-18 18:47:37

标签: java arrays

为什么此代码的输出是

island = Fiji
island = Cozumel
island = Bermuda
island = Azores

为什么输出从斐济岛开始,而不是"百慕大"?百慕大阵中有0个元素。能否请您指出为什么我的输出有这样的特定订单。

public class TestArrays {
public static void main (String[] args){
    int y = 0;
    int[] index = new int [4];
    index[0] = 1;
    index[1] = 3;
    index[2] = 0;
    index[3] = 2;


    String[] islands = new String[4];
    islands[0] = "Bermuda";
    islands[1] = "Fiji";
    islands[2] = "Azores";
    islands[3] = "Cozumel";

    int ref;
    while ( y < 4){
        ref = index[y];
        System.out.print("island = ");
        System.out.println(islands[ref]);
        y = y + 1;

    }

}

5 个答案:

答案 0 :(得分:1)

这很简单:

ref = index[y];

上述行将ref输出为 1 ,因为当index[y] 0时,y结果 1

因此,

ref = 1  //index[0] = 1;

现在,下面一行:

System.out.println(islands[ref]);

输出:

  

岛屿=斐济

因为ref 1 islands[ref]代表斐济,如下所示:

islands[1] = "Fiji";

答案 1 :(得分:0)

您的索引按{1,3,0,2}

排序
int[] index = new int [4];
index[0] = 1;
index[1] = 3;
index[2] = 0;
index[3] = 2;

因此它会打印岛屿[1],岛屿[3],岛屿[0],岛屿[2]

String[] islands = new String[4];
islands[0] = "Bermuda";
islands[1] = "Fiji";
islands[2] = "Azores";
islands[3] = "Cozumel";

斐济,科苏梅尔,百慕大,亚速尔群岛

答案 2 :(得分:0)

基本上,它是以这种方式打印出来的,因为你要告诉它。

您可以像这样设置索引

int[] index = new int [4];
    index[0] = 1;
    index[1] = 3;
    index[2] = 0;
    index[3] = 2;

然后致电

ref = index[y];
        System.out.print("island = ");
        System.out.println(islands[ref]);
        y = y + 1;

index[y]中的值是您按顺序打印出来的原因。

index [0]为1,因此当您致电System.out.println(islands[ref]);时,您正在呼叫System.out.println(islands[1]);,即Fiji

答案 3 :(得分:0)

在呼叫岛[ref]中,y = 0,1,2,3。电话是

island[index[0]] = island [1] = "Fiji"
island[index[1]] = island [3] = "Cozumel"
island[index[2]] = island [0] = "Bermuda"
island[index[3]] = island [2] = "Azores"

您基本上已经从索引数组更改了岛的索引调用。

答案 4 :(得分:0)

    int ref;
    while ( y < 4){
        System.out.println(y); (1)
        ref = index[y];
        System.out.println(ref); (2)
        System.out.print("island = ");
        System.out.println(islands[ref]);
        y = y + 1;

    }

迭代#01

语句(1)将生成0,因为y为0,语句(2)将生成1,因为index[0]中存储了1。 islands[1]斐济

迭代#02

语句(1)将生成1,因为y是1,而语句(2)将生成3,因为index[1]中有3个存储。 islands[3] Cozumel

对这样的while循环进行迭代,直到每个索引的y < 4都能帮助你看到,为什么生成的输出就像这样,就是这样。