大家都知道,do loops
至少执行一次,即使语句为假 - 如果语句为假,while loop
也不会执行一次。
什么时候循环有用吗?有人能给我一个真实的例子吗?
答案 0 :(得分:3)
当你想要至少一次,甚至更多的事情发生时,它们基本上是有用的。
首先想到的例子是在数据库中生成唯一ID(非顺序)。我有时采取的方法是:
lock table
do {
id = generate random id
} while(id exists)
insert into db with the generated id
unlock table
基本上它会继续生成id,直到不存在(注意:可能是一个无限循环,我可能会根据情况防范)。
答案 1 :(得分:0)
如果你必须检查多个文件等,Do循环是非常强大的。由于迭代的保证,它将一直工作。
do {
if($integer > 0) { $nameoffile[0]++; }
else { $nameoffile[0] = $nameoffile[0].$integer; }
$integer++;
} while(file_exists("directory/".$nameoffile[0].".".$nameoffile[1]));
答案 2 :(得分:0)
在已经回答的问题旁边,您可以使用do:
执行这样的粗略操作do
{
if ($cond1) break;
if ($cond2) continue;
do_something();
} while(true/false);
这是对switch
循环的修改,允许继续。如果goto
不可用且类似,则可以模拟goto
个相似之处。
它不能使您的代码更具可读性,因此通常不建议这样做。但它在技术上有效。