【问题标题】:Understanding basic for-each loops java了解基本的for-each循环java
【发布时间】:2015-08-18 06:07:41
【问题描述】:

在 java 中,我知道在这个网站上,for-each 或增强的for 循环等主题之前已经介绍过,但我仍然不明白它们是如何工作的。

例如,

String[] a = { "A", "B", "C", "D" }; 
String b = ""; 

for (String q : a) 
    b = q + b; 

System.out.println(b);

b 会输出什么?
你能告诉我这是怎么回事吗?
谢谢。

【问题讨论】:

  • 你尝试的时候发生了什么?
  • 不,这只是我想出的一个例子。我不明白如何在我的脑海中逻辑地解决这个问题,或者在我的脑海中“一步”解决它。
  • 何不尝试编译运行呢?
  • 首先将 b = q + b 替换为 print q。它基本上是在说:对于数组 q 中的所有元素,将其显示在屏幕上。既然您已经了解您将遍历数组的每个元素,请考虑一下加法对字符串有什么作用?它将字符串元素附加到 b 字符串的开头。你从一个空字符串开始,你得到元素“A”,你添加它,你有“A”。你对“B”做同样的事情,你得到“BA”......等等
  • 我投票决定将此问题作为离题结束,因为它没有显示出对所问问题的基本理解。

标签: java


【解决方案1】:

输出将是“DCBA”

for each 循环类似于标准 for 循环,便于分配给循环范围变量

你写的相当于:

for (int i = 0; i < a.length; i++) {
    String q = a[i];
    b = q + b;
}

【讨论】:

    【解决方案2】:

    输出将是“DCBA”。

    在每个循环中,q 是数组的一个元素。而你一个接一个的加到b的前面。

    【讨论】:

      【解决方案3】:

      b 会输出“DCBA”。

      在您的循环中,您将遍历数组 a 中的每个字符串元素。既然你设置了:

      b = q + b
      

      代替:

      b = b + q
      

      ,您遍历的每个新元素都被添加到之前之前包含在 b 中的内容,导致您向后添加数组中的每个字母。 (如果你有后一个作业,你就会有“ABCD”)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-30
        • 2018-07-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多