替代“while”循环

时间:2016-03-17 16:12:14

标签: java

我正在寻找更好的替代代码。假设一些常用的编程语言(C / C ++,java,...):

1)

while( true ) {
  foo = ... something ugly ...
  if( foo == null ) break;
  ... some code
}

不太好,因为永远使用一个循环,并且在某些代码的中间可能会“丢失”。

2)

foo = ... something ugly ...
while( foo != null ) {
  ... some code
  foo = ... something ugly ...
}

不好,因为对“foo”的赋值是重复的。同样在这种情况下:

2b)的

for( foo = ... something ugly ...; 
     foo != null;
     foo = ... something ugly ... ) {
  ... some code
}

3)

goto INIT:
while( foo != null ) {
  ... some code
  INIT: foo = ... something ugly ...
}

“转到”一个循环的中间。

4)

do {
  foo = ... something ugly ...
  if( foo != null ) {
     ... some code 
  }
} while ( foo != null )

条件重复。

看起来很奇怪,这么常见的东西没有很好的实施。

2 个答案:

答案 0 :(得分:4)

通常通过以下方式完成:

self.send(method).send_keys(value)

赋值运算符puts的结果只是赋值,因此它也可以在表达式中使用。无论什么丑陋只是单独的方法。

答案 1 :(得分:2)

与Sasha的解决方案类似,但我赞成for来限制变量的范围。一个例子是从BufferedReader

中读取行
try (BufferedReader br = new BufferedReader(new FileReader(filename)) {
    for(String line; (line = br.readLine()) != null; ) {
        doSomething(line);
    }
    // line is out of scope here.
}