【问题标题】:Having a little issue understanding the code理解代码有一点问题
【发布时间】:2014-04-11 16:50:42
【问题描述】:

我有一个非常不寻常的要求,我希望我可以向您寻求专业反馈。我对以下代码的理解有点问题。

代码:

Class TestTablic {
    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 部分很困惑,它甚至有必要吗?我从我用来学习java 的书中获取了以下代码,但他们在那里放了很多令人困惑的行......)

干杯!

【问题讨论】:

  • int ref 声明了一个名为 ref 的变量,它属于原始整数数据类型。没有它,对该变量的后续引用将导致编译器错误。
  • java 区分大小写。岛屿和岛屿不一样。所以会出现编译错误
  • 或者删除该行并在循环中的 ref 之前添加“int”以具有本地声明。无论如何,它不会在循环之外使用。

标签: java arrays string sorting int


【解决方案1】:

ref 在循环体中定义为对应于ref = indeks[y];。鉴于indeks [1, 3, 0, 2] 的先前定义,它将输出islands(注意小写“i”)

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

【讨论】:

  • 非常感谢您的回答。还有一个问题(我希望我理解正确)如果我直接引用“islands”字符串而不专门为此声明另一个整数(ref 整数)会不会更容易?
  • @Lotix: 是的,这会更容易(而且更容易理解)——例如,您可以通过调用 System.out.println(islands[y]); 来获取岛屿(就像直接使用 y 索引访问岛屿数组一样) – 但是这会导致不同的顺序。
  • @Lotix 或者,您可以使用for-each 循环。
  • 非常感谢!这正是我想知道的:) 非常感谢。
猜你喜欢
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
  • 2011-12-11
  • 1970-01-01
  • 2020-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多