为什么此代码的输出是
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;
}
}
答案 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
都能帮助你看到,为什么生成的输出就像这样,就是这样。