我刚进入编码世界,我正在学习所有关于循环的知识。我刚学会了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的结果
答案 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”。