【问题标题】:What's the difference between while() and for()? [duplicate]while() 和 for() 有什么区别? [复制]
【发布时间】:2020-11-06 10:52:43
【问题描述】:

也许我的问题看起来很重要,但实际上并非如此。我声称我可以做到一切是由for() while() 完成的,反之亦然。那么当有for()while() 真的有用吗?我需要一个例子,我可以通过for() 做到这一点,而我不能通过while() 做到这一点。有?我认为没有……!

结构如下:

for (init counter; test counter; increment counter) {
    code to be executed;
}


init counter;
while (test counter) {
    code to be executed;
    increment counter;
}

看到了吗?它们完全一样,现在我想知道为什么 php 两者都有?

【问题讨论】:

  • 是的!!!我认为有一个区别。如果您知道迭代次数,请执行 For 循环,否则执行 While 循环。还有一件事是 For 循环更具可读性和更精确的方式

标签: php for-loop while-loop


【解决方案1】:

不同之处在于 do while 循环至少执行一次,因为它在退出时检查循环条件。 While 是一个入口控制循环,而 do while 是一个出口控制循环。而在 do while 循环中,它将进入循环,然后检查条件。

while 循环 - 用于循环直到满足条件并且不确定代码应该循环多少次

for 循环 - 用于循环直到满足条件,但在您知道代码需要循环多少次时使用它

do while 循环 - 在检查 while 条件之前执行一次循环的内容。

【讨论】:

  • 请填写while{}do{}while之间的差异
【解决方案2】:

它们完全一样:

同时

INITIALIZE_1;
INITIALIZE_2;
...
INITIALIZE_N;
while(CONDITIONS) {
    // your block code
    ...
    # not only incrementation !!
    OPERATION_1;
    OPERATION_2;
    ...
    OPERATION_N;
}

for (INITIALIZE_1, INITIALIZE_2, ..., INITIALIZE_N ; CONDITIONS ; OPERATION_1, OPERATION_2, ..., OPERATION_N) {
    // your block code
    ...
}

for对于人类来说更全面,所以他可以在一行中看到:初始化、条件和操作,但还有其他情况while更合适,比如:

while(NOT_QUIT_SIGNAL) { ... } vs for ( ; NOT_QUIT_SIGNAL ; ) { ... }

while(TRUE) { ... } vs for ( ; TRUE ; ) { ...}

【讨论】:

    【解决方案3】:

    您可以将while(true) 用于守护程序(尽管肯定有更好的语言用于它),或者类似的场景,您可能希望脚本无限期地运行。

    或者,while 可以与谓词一起使用,或者每次都执行一个函数来检查一个属性。

    while(functionCanExecute($someVar)) {
        //Do Stuff
    }
    

    这将在最初和每个循环之后进行评估,以检查 while 循环是否应该再次运行。

    它们的底层功能可能非常相似/相同,但在某些情况下,使用其中一个比另一个更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-28
      • 2014-05-19
      • 1970-01-01
      • 2011-01-16
      • 2022-01-03
      • 2011-04-01
      • 2015-11-23
      相关资源
      最近更新 更多