2011-10-11 94 views
3

大家都可能知道,do loops至少执行一次,即使该语句是假的 - 而while loop永远不会执行甚至一度如果语句是假的。什么时候循环有用?

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

+2

相关http://stackoverflow.com/q/1035229/38206 –

回答

3

当你希望至少发生一次或更多事情时,它们基本上是有用的。

想到的第一个例子是产生在数据库中的唯一的ID(非顺序)。这种方法有时我采取的是:

lock table 
do { 
    id = generate random id 
} while(id exists) 
insert into db with the generated id 
unlock table 

基本上,它会一直保持到一个不存在的(注:潜在的无限循环,我会警惕视情况而定)生成的ID。

+0

向下投票关怀解释?不要失望,跑步! :( – Corbin

0

DO循环,如果你要检查多个文件等非常强大的。由于迭代的机制保障,将通过所有的工作方式。

do { 
    if($integer > 0) { $nameoffile[0]++; } 
    else { $nameoffile[0] = $nameoffile[0].$integer; } 
    $integer++; 
} while(file_exists("directory/".$nameoffile[0].".".$nameoffile[1])); 
0

下一页什么已经回答了,你可以这样做粗的东西用做:

do 
{ 
    if ($cond1) break; 

    if ($cond2) continue; 

    do_something(); 

} while(true/false); 

这是一个switch循环,这使得持续的改进。如果goto不可用且类似,则可以模拟goto的相似性。

它不能让你的代码更具可读性,所以通常不会这么做。但它在技术上是有效的。

相关问题