陈述很奇怪

时间:2016-05-30 17:17:09

标签: java for-loop

今天我在某些Java代码中遇到了奇怪的for语句形式: 这个陈述的例子如下:

String doSomething(){

  String str;

  for (str = ""; isTrue(); str = obj.findSomething(0)) {
    ;
  }

return str;
}

最后,我没有理解它是如何工作的。 有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

String doSomething() {
    String str;
    for (str = ""; isTrue(); str = obj.findSomething(0)) {
        ; // inside
    }
    return str;
}

相当于

String doSomething() {
    String str;
    { // begin of for loop's scope
        str = ""; // initialization
        while (isTrue()) { // termination
            {
                ; // inside
            }
            str = obj.findSomething(0); // increment
        }
    }
    return str;
}

这适用于这样的每个for循环,for(;;)中的空终止条件被视为true

它只是

String doSomething() {
    String str = "";
    while (isTrue()) {
        str = obj.findSomething(0);
    }
    return str;
}

当这样写的时候不会让人感到困惑。