For-each循环向后迭代

时间:2015-10-16 18:25:09

标签: java foreach

给出代码

find('tr', text: 'school2').find('a.tick').click

我认为输出将是" ABCD"但它是" DCBA"

为什么?

3 个答案:

答案 0 :(得分:9)

你的循环每个元素添加到b。 那就是:

  • 前置“A” - > “A”
  • 前置“B” - > “BA”
  • 前置“C” - > “CBA”
  • 前置“D” - > “DCBA”

如果您想获得“ABCD”,请将逻辑更改为追加

for ( String q : p ) {
   // b = q + b;  // prepend
   // b = b + q;  // append
   b += q;        // append, using the shorter `+=` notation
}

答案 1 :(得分:5)

因为在

b = q + b;
  • q表示当前元素循环来自您的数组
  • b是先前连词的结果

表示您在旧结果前添加新部分

答案 2 :(得分:0)

表达式

q + b;

表示new element + old string

对于通过4元素数组的每次迭代,值为

b = "A" + "" - resulting in "A"
b = "B" + "A" - resulting in "BA"
b = "C" + "BA" - resulting in "CBA"
b = "D" + "CBA" - resulting in "DCBA"

将作业更改为     b = b + q; 要么     b + = q;