什么时候循环有用吗?

时间:2011-10-11 08:22:21

标签: php

大家都知道,do loops至少执行一次,即使语句为假 - 如果语句为假,while loop也不会执行一次。

什么时候循环有用吗?有人能给我一个真实的例子吗?

3 个答案:

答案 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个相似之处。

它不能使您的代码更具可读性,因此通常不建议这样做。但它在技术上有效。