为什么while和for循环之间的结果不同

时间:2011-04-11 02:57:12

标签: loops for-loop while-loop

我刚进入编码世界,我正在学习所有关于循环的知识。我刚学会了for和while循环,但不明白为什么返回不同的结果。有人可以用非专业人士的话来解释逻辑。

/ *表示循环代码* /

$counter = 0;
$start = 1;
$end = 11;

for($start;$start<$end;start++) {
$counter=$counter+1;
print $counter;
}

我得到的结果是1,2,3,4,5,6,7,8,9,10

/ * while循环代码* /

$start=0;
$end=11;

while($start<end) {
$start=$start+1;
print $start;
}

我得到的结果是1,2,3,4,5,6,7,8,9,10,11

为什么while循环返回1到11的结果,而for循环返回1到10的结果

4 个答案:

答案 0 :(得分:2)

for循环中的增量在第一个循环之后执行。

试试这个:

$start=1;
$end=11;

while($start<end) {
    print $start;
    $start=$start+1;
}

答案 1 :(得分:0)

for案例中,$start从1开始,但while案例$start从0开始。

处理for -

 iteration    $start      $start<$end     counter   print   start++        
    1           1            1<11           1         1        2
    2           2            2<11           2         2        3
    3           3            3<11           3         3        4
    4           4            4<11           4         4        5
    5           5            5<11           5         5        6
    6           6            6<11           6         6        7
    7           7            7<11           7         7        8
    8           8            8<11           8         8        9
    9           9            9<11           9         9        10
   10           10          10<11          10         10       11
   11           11          11<11 
                          // (false) break

同样适用于while循环。这是一个纸笔练习。

答案 2 :(得分:0)

两个计数器没有初始化为相同的值,尝试使用

的第一个
$start = 1;

答案 3 :(得分:0)

在while循环的最后一次迭代中,10&lt; 11,然后你加1到10,所以它等于11.但是你已经在你的循环中了。所以它打印出来。下次通过,11 <11是假的,所以它立即退出。

现在,如果你想让它工作,请移动$ start = $ start + 1;在打印声明之后。

另外,我认为你让自己感到困惑。在一个示例中,您打印出“$ start”,而在另一个示例中,您打印出“$ counter”。