我正在寻找更好的替代代码。假设一些常用的编程语言(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 )
条件重复。
看起来很奇怪,这么常见的东西没有很好的实施。
答案 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.
}