我正在阅读关于PHP的电子书,作者注意到while循环和for循环之间的区别在于for循环将计算它运行的次数。
所以这个:
<?php
for ($i = 1; $i < 10; $i = $i + 1) {
print "Number $i\n";
}
?>
但这不会与
相同<?php
$i = 1;
while ($i < 10) {
$i = $i + 1;
print "Number $i\n";
}
?>
或者他没有指出其他一些差异? (除了在不确定条件将保持多长时间时使用while循环,例如从数据库中选择行)
我的意思是,如果这是唯一的区别,我不能不使用for循环而是使用while循环吗?
答案 0 :(得分:11)
从功能上讲,你的两个例子是相同的。但他们表达了不同的意图。
while
的意思是'我不知道这种情况会持续多久,但只要它确实如此,就做这件事。'for
表示“我有一定的重复次数供您执行。”当你的意思是另一个时,你可以使用一个,但是阅读代码会更难。
for
更适合$i
成为循环的局部变量foreach
就个人而言,我在PHP中经常使用的循环是foreach
。如果你发现自己做了这样的事情:
for ($i=0; $i < count($some_array); $i++){
echo $some_array[$i];
}
...然后试试这个:
foreach ($some_array as $item){
echo $item;
}
键入速度更快,更易于阅读。
答案 1 :(得分:10)
for
循环在这种情况下更具可读性,绝对是您在几乎所有具有循环指令的语言中都会使用的约定。如果您使用while
循环,那么人们会怀疑为什么您没有使用for
循环。
答案 2 :(得分:4)
从功能上讲,for
循环等同于while
循环;也就是说,每个都可以重写为另一个,而不会改变结果或副作用。但是,每个都有不同的内涵。条件成立时运行while
循环;虽然情况发生了变化,但条件是静态的。 for
循环遍历序列。这对于程序员而言不是很重要,因为变量名称的选择对于程序员来说很重要,即使它们可以被改变以产生功能相同的代码。根据情况,一个循环结构将比另一个更有意义。
答案 3 :(得分:3)
for-loop
for (INIT; CONDITIONS; UPDATE) {
BODY
}
与这样的while循环基本相同:
INIT
while (CONDITIONS) {
BODY
UPDATE
}
虽然您可以在技术上使用其中一种,但在某些情况下while
的效果优于for
,反之亦然。
答案 4 :(得分:1)
for()和While()之间的主要区别在于,我们必须定义限制或计数,但是在while()循环中,我们直到到达最后一项时才定义限制或计数
为循环 初始化可以在循环语句中,也可以在循环外部。 通常在知道迭代次数时使用。 条件是一个关系表达式。 当初始化和增量很简单时使用。 for(init;条件;迭代) {陈述; }
WHILE LOOP 初始化总是在循环之外。 通常在未知迭代次数时使用。 条件可以是表达式或非零值。 它用于复杂的初始化。 一会儿(条件) {陈述; }
答案 5 :(得分:0)
这是品味,个人偏好和可读性的问题。有时,while
循环在逻辑上更有效。有时,for
。
对于我的个人规则,如果我不需要变量初始值设定项,那么我使用while
。
但是foreach
循环以其自己的方式有用。
另外,在PHP的作用域中,所有不在函数内部的变量都是全局的,无论你使用哪个循环控件,变量都会在循环之后继续存在。