【问题标题】:: operator meaning ( for (Pond p : ponds) { ) [duplicate]:运算符含义(对于(池塘p:池塘){)[重复]
【发布时间】:2015-07-19 17:01:32
【问题描述】:

: 运算符在下面代码上下文中的 for 循环中是什么意思?

Pond[] ponds = {new Ocean(), new Pond(), new Lake(), new Bay()};
for (Pond p : ponds) {
p.method1(); 
System.out.println(); 
p.method2(); 

在网上它说 : 是一个三元运算符,但我看不出它在这种情况下如何应用。

【问题讨论】:

  • 它被称为 for-each 循环。您可以将此构造用于任何 Iterable 的实例
  • @schtever - Dang.. 我搜索并搜索了一个 dup.. 最后不得不使用我认为最好的任何东西.. :)

标签: java ternary-operator


【解决方案1】:

在这种情况下,它类似于您的 for 循环迭代。它遍历池塘中的每个元素

Pond[] ponds = {new Ocean(), new Pond(), new Lake(), new Bay()};
for (Pond p : ponds) {
   p.method1(); 
   System.out.println(); 
   p.method2();
}

三元运算符基本上带有 ?和:

语法:

(条件)?(真陈述):(假陈述)

【讨论】:

    【解决方案2】:

    三元运算符是? :,在someBoolean ? a : b 中读作if someBoolean then a, else b

    在您的情况下,: 表示 for-each 循环,其内容为:for each pond in ponds

    【讨论】:

      【解决方案3】:

      这是一个增强的 for 循环。在您的示例中,它将遍历池塘数组中的所有池塘对象。

      Enhanced For Loop

      【讨论】:

        【解决方案4】:

        pondsPond 对象的数组。该循环称为“增强型 for 循环”,与其他语言中的“for each”循环基本相同,它迭代整个数组长度。对于数组中的每个池塘,它都将当前迭代到的数组中的索引值分配给变量p。因此,在此循环中,每次迭代到下一个值时,它都会将该值分配给p,并在循环内的p 上运行代码。

        【讨论】:

          【解决方案5】:

          ":" 这在条件运算中称为三元,例如:"(1>2)?10:20;"

          冒号“:”用在很多地方。

          【讨论】:

          • 答案不是提及重复的地方。在问题的 cmets 中说明。
          猜你喜欢
          • 1970-01-01
          • 2011-09-28
          • 1970-01-01
          • 1970-01-01
          • 2021-06-09
          • 2018-02-19
          • 2016-07-25
          • 1970-01-01
          • 2012-02-28
          相关资源
          最近更新 更多