【问题标题】:What does ":" mean in this Java statement?这个 Java 语句中的“:”是什么意思?
【发布时间】:2011-04-28 23:09:05
【问题描述】:
for (Season time : Season.values() )
system.out.println (time+ "\t" + time.getSpan());

我看到了一个使用: 进行枚举的示例。这是什么意思?

【问题讨论】:

    标签: java loops for-loop foreach


    【解决方案1】:

    这是foreach loop 的Java 语法。

    循环将遍历Season.values()返回的对象集合中的所有项目,在执行循环体之前将每个项目依次放入time变量中。有关 foreach 循环如何工作的更多详细信息,请仔细查看 related question

    【讨论】:

    • 哦,我明白了。我习惯在 PHP 中看到as
    • @Doug:在 PHP 中你使用as。示例:foreach($array as $val)
    • @codaddict 是的,我改正了。你比我领先!
    【解决方案2】:

    new for-each loop中将左边的迭代变量和右边的数组分开只是一个记号

    【讨论】:

      【解决方案3】:

      这是foreach的java版本。

      这是一个简写版本

      for (int i = 0; i < Season.values().size(); i++) {
          Season time = Season.values().get(i);
          System.out.println(time + "\t" + time.getSpan());
      }
      

      (确切的细节取决于 Season.values() 返回的是什么,但你明白了)

      正如 Michael 指出的那样,虽然上面的例子更直观,但 foreach 实际上相当于:

      Iterator<Season> seasons = Season.iterator();
      while (seasons.hasNext()) {
          Season time = seasons.next();
          System.out.println(time + "\t" + time.getSpan());
      }
      

      【讨论】:

      • 实际上,它是基于迭代器的等价物的简写(因为它适用于任何可迭代的东西)。
      • Universe 使用 for 在容器上进行索引迭代比使用迭代器语义更直观。我想每个人都有自己的..
      • @dsmith - 当我说“更直观”时,我的意思是解释 foreach 的作用。由于它的结构仍然是 for-loop,我认为如果人们第一次看到 for-each 结构,他们会更容易理解正在发生的事情
      猜你喜欢
      • 2012-01-05
      • 2021-12-25
      • 2014-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 2022-01-12
      • 2016-07-04
      相关资源
      最近更新 更多