在PHP中有条件的while循环?

时间:2010-03-12 19:58:04

标签: php loops while-loop

我需要进行PHP while循环,但前提是变量为true。而且我不能把while循环放在一个“if”语句中,这似乎是显而易见的事情,因为代码块是巨大的,它将是丑陋和混乱。我是否需要将循环中的代码分解为函数,还是有更简单的方法来处理它?<​​/ p>

这是基本想法:

if(condition){
  while(another_condition){
    //huge block of code loops many times
  }
} else {
  // huge block of code runs once
}

我希望无论条件变量的状态如何都要执行巨大的代码块 - 但是如果condition为false则只执行一次,并且如果condition为true,则执行for another_condition为真。

以下代码不起作用,但会了解我想要完成的任务:

if(condition){ while(another_condition){ }
  // huge block of code
if (condition){ } } // closes the while loop-- obviously throws an error though!

提前感谢。

4 个答案:

答案 0 :(得分:8)

如果我正确理解您的问题,您可以使用do ... while()结构:

do
{
    // your code
} while(condition);

无论任何因素如何,这都将执行// your code一次,然后仅针对第二次迭代以及之后检查条件。

答案 1 :(得分:3)

为了便于阅读,如果你的巨大代码块可以在几个专用函数中分开,那就去做吧。如果您以后需要调试,肯定会付出代价。

答案 2 :(得分:2)

我会将大量代码放在一个函数中,这样它就可以在没有重复代码的情况下再次使用。

function hugeBlockOfCode() {
  // Huge block of code.
}

while (condition && another_condition) {
  hugeBlockOfCode();
}

if (!condition) {
  // Run code once.
  hugeBlockOfCode();
}

do {
  hugeBlockOfCode();
} while (another_condition);

答案 3 :(得分:1)

这是你想要的吗?

while (condition && another_condition) {
   // large block of code
}
if (!condition) {
   // do something else
}