如何根据东西改变while循环条件?

时间:2010-04-25 21:51:04

标签: php loops conditional-statements while-loop

通过这个问题我的意思是,如果,例如,某人的用户名是“bob”那么while循环条件将是($ i <10),如果用户名是其他东西那么while循环条件将是($ i> 10)

if($username == "bob")
{
   //make this while loop condition: ($i < 10)
   // it means: while($i <10){ so stuff}
}
else
{
   //make the while loop condition: ($i >10)
}

5 个答案:

答案 0 :(得分:4)

使do_stuff成为一个函数,然后这是完全可读的(虽然特殊套管'bob'似乎最好是可疑的。)

if($username == "bob")
{
   while($i<10) {
       do_stuff();
   }
}
else
{
   while($i>10) {
       do_stuff();
   }
}

答案 1 :(得分:2)

while( ($username == 'bob' && $i <10 ) XOR $i > 10){}

$username == 'bob'将首先评估true,然后评估$i < 10

仅当$var1 XOR $var2中有一个true 而非$var1, $var2 时,{p> true才会{{1}}。

但我自己会选择this

答案 2 :(得分:0)

尝试在if和else块中创建两个不同的while循环。

答案 3 :(得分:0)

这是什么意思?您可以根据if的成功或失败采取不同的路径。如果里面的代码是相同的,只需调用一个方法以避免重复它。

if($username == "bob")
{
   //make this while loop condition: ($i < 10)
   // it means: while($i <10){ so stuff}
   while ($i < 10) {
       call_method();
   }
}
else
{
   while ($i > 10) {
       call_method();
   }
}

答案 4 :(得分:0)

保持代码简单:

if($ username ==“bob”) {    while($ i&lt; 10){ }

} 其他 {  while($ i&gt; 10){ }

}

还有其他更好的方法来处理它,但它们可能会让您的代码难以理解,就像使用我不喜欢的eval一样。