Java 理解代码时有点小问题

Java 理解代码时有点小问题,java,arrays,string,sorting,int,Java,Arrays,String,Sorting,Int,我有一个非常不寻常的要求,我希望我能向你寻求专业的反馈。我在理解下面的代码时有点问题 代码: 类测试表{ 公共静态void main(字符串[]args){ int[]indeks=新的int[4]; indeks[0]=1; indeks[1]=3; indeks[2]=0; indeks[3]=2; 字符串[]孤岛=新字符串[4]; 岛屿[0]=“百慕大”; 岛屿[1]=“斐济”; 岛屿[2]=“亚速尔”; 岛屿[3]=“Kozumel”; int y=0; int-ref; 而(y

我有一个非常不寻常的要求,我希望我能向你寻求专业的反馈。我在理解下面的代码时有点问题

代码:

类测试表{
公共静态void main(字符串[]args){
int[]indeks=新的int[4];
indeks[0]=1;
indeks[1]=3;
indeks[2]=0;
indeks[3]=2;
字符串[]孤岛=新字符串[4];
岛屿[0]=“百慕大”;
岛屿[1]=“斐济”;
岛屿[2]=“亚速尔”;
岛屿[3]=“Kozumel”;
int y=0;
int-ref;
而(y<4){
ref=indeks[y];
系统输出打印(“孤岛=”);
系统输出打印LN(岛屿[ref]);
y=y+1;
}
}
}
如果有人能一步一步地把它分解给我,看看我是否理解正确,我将不胜感激

(我对
int-ref
部分感到困惑,这是必要的吗?我从我用来学习java的书中获取了以下代码,但他们在其中放了很多令人困惑的行…)


干杯

循环体中定义的
ref
对应于
ref=indeks[y]。根据前面对
indeks
[1,3,0,2]的定义,它将输出
孤岛
(注意小写“i”)

所以,把这一切结合起来

public static void main(String[] args) {
    int[] indeks = new int[4];
    indeks[0] = 1;
    indeks[1] = 3;
    indeks[2] = 0;
    indeks[3] = 2;
    String[] islands = new String[4];
    islands[0] = "Bermudy";
    islands[1] = "Fiji";
    islands[2] = "Azory";
    islands[3] = "Kozumel";
    int y = 0;
    int ref;
    while (y < 4) {
        ref = indeks[y];
        System.out.print("Island = ");
        System.out.println(islands[ref]);
        y = y + 1;
    }
}

int-ref
声明一个名为
ref
的变量为原始整数数据类型。如果没有它,对该变量的后续引用将导致编译器错误。java区分大小写。岛屿和岛屿不一样。因此将出现编译错误,或者删除该行并在循环中的ref之前添加“int”以进行局部声明。无论如何,它不会在循环之外使用。非常感谢您的回答。如果我直接引用“islands”字符串而不专门为此声明另一个整数(ref-One),那么还有一个问题(我希望我理解正确)就不会更容易了?@Lotix:是的,这会更容易(而且更容易理解)——例如,您可以通过调用
System.out.println(islands[y])来获取孤岛(就像使用y索引直接访问孤岛数组一样)–但是这会导致不同的顺序。@Lotix或,您可以使用循环。非常感谢!这正是我想知道的:)非常感谢。
Fiji
Kozumel
Bermudy
Azory
public static void main(String[] args) {
    int[] indeks = new int[4];
    indeks[0] = 1;
    indeks[1] = 3;
    indeks[2] = 0;
    indeks[3] = 2;
    String[] islands = new String[4];
    islands[0] = "Bermudy";
    islands[1] = "Fiji";
    islands[2] = "Azory";
    islands[3] = "Kozumel";
    int y = 0;
    int ref;
    while (y < 4) {
        ref = indeks[y];
        System.out.print("Island = ");
        System.out.println(islands[ref]);
        y = y + 1;
    }
}
Island = Fiji
Island = Kozumel
Island = Bermudy
Island = Azory