PHP开发基础教程之循环语句

一、PHP循环

在我们编写代码时,经常需要让相同的代码块一次又一次地重复运行。这时候我们就可以在代码中使用循环语句来完成这个任务。

在 PHP 中,提供了下列循环语句:

while - 只要指定的条件成立,则循环执行代码块

do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环

for - 循环执行代码块指定的次数

foreach - 根据数组中每个元素来循环代码块

二、while循环

while 循环将重复执行代码块,直到指定的条件不成立

语法:

while (条件)
{
要执行的代码;
}

我们来通过一个代码逻辑图,认识一下while循环

15.png

首先判断条件是否满足,满足的话,一直执行大括号里面的代码,直到条件不满足时,跳出

实例1循环输出1到50内的整数:源代码如下

<?php
$i=1;
while($i<=50){
	echo $i."&nbsp";
	$i++;
}
?>

实例2:输出一个1到100的表格,实现隔行变色功能

首先输出整个表格:源码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
 <?php
//定义循环的初始值
$i=0;
//输出表格
echo '<table width="800" border="1" >';//双引号外面要套单引号,双引号会报错
while($i<100){
	 //0 - 9 为一行
        //10 -19 为一行
        //因此,每一行的开始都能够被10求余后为零,如为10的时候,应该显示行开始的标签
	if($i%10==0){
		//为了隔行变色,第2,4,6每行的颜色变过色的,因此我们又可以再进行一次取余运算
		if($i%20==0){
			//第1,3,5等行正常输出
			echo "<tr>";
		}else{
			//第2,4,6等行正常输出
			echo '<tr bgcolor="pink">';//双引号外面要套单引号,双引号会报错
		}	
	}
		echo "<td>";
		echo $i;
		echo "</td>";
	$i++;
	 //同理,每一行结束是不是应该有一个</tr>结束标签呢?
	if($i%10==0){
	echo "</tr>";
	
	}
	
}
echo "</table>";
?>   
</body>
</html>

注:表格部分只是请参考HTML课程的相关部分

注:语句里面,双引号里面要套单引号,单引号里面套双引号

三、do...while循环

语法:do
{
要执行的代码;
}
while (条件);

l do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,就会重复进行循环

l do...while与while的区别是,它们的值的检查时机不同。

l do-while 不论while判断是否成立,先执行一次代码代码块循环语句,保证会执行一次(表达式的真值在每次循环结束后检查)。
然而我们之前的while循环会检查布尔判断区域,成立则执行。不成立则不执行。

<?php
$i = 0;
do {
   echo $i;
} while ($i > 0);
?>

上面代码中,$i 肯定不大于0,也执行了。

当然,你还不能理解,实在想不到应用场景也没关系,可以完全跳过此块。

do...while用的情况比较少。我们有可能用在资源处理如:文件打开等地方。

四、for 循环控制语句

for 循环用于预先知道脚本需要运行的次数的情况

语法:

for (初始值; 条件; 增量)
{
要执行的代码;
}

参数:

  •  初始值:主要是初始化一个变量值,用于设置一个计数器(但可以是任何在循环的开始被执行一次的代码)。

  •  条件:循环执行的限制条件。如果为 TRUE,则循环继续。如果为 FALSE,则循环结束。

  •  增量:主要用于递增计数器(但可以是任何在循环的结束被执行的代码)。

注:上面的初始值和增量参数可为空,或者有多个表达式(用逗号分隔)

实例:用for循环来输出1-100。源码如下

<?php
for($i=1;$i<=50;$i++){
	echo $i."&nbsp";
}
?>

实例:用for循环来打一下9*9的乘法口诀表吧

<?php
//99乘法口诀表从1开始,所以声明一个变量$i = 1,让$i小于10,也就是最大值为9
for($i=1;$i<=9;$i++){
	//1x1=1,2x2等于4,所以第二次循环的最大值为$i的值,因此$j=1, $j在循环自加的过程当中,只能够小于等于$i
	for($j=1;$j<=$i;$j++){
		echo $i."x".$j."=".$i*$j.'&nbsp;&nbsp;&nbsp;';
	}
	//每行结束输出一个换行
	echo "<br/>";
}
?>

注:在代码中是横着输出的,换行符在每一个内部的for循环结束后执行一次

我们来补充一下几个跳出的异同吧


语句

作用

exit

exit之前我们讲过了,从当前处停止后续执行

break

之前遇到过,跳出循环或者跳出结构体执行后续代码

continue

跳出此次循环,下次循环继续


来看个例子,源码如下:

<?php
for ($i = 1; $i <= 10; $i++) {
    if($i == 4){
            //待会儿换成contiune试试
            break;
    }
    echo '学习PHP的第'.$i.'天,加油<br />';
}
?>

将break换成continue,查看结果试试:(第4行丢失,其他行正常输出)

五、foreach循环(此处数组还没有介绍,可以看完数组的介绍之后再学习本章)

foreach 循环用于遍历数组

语法为:

foreach ($array as $value)
{
要执行代码;
}

每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值

实例:源代码如下

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
<body>
<?php
$x=array(1,2,3,4);
foreach ($x as $value)
{
echo $value . "<br>";
}
?>
</body>
</html>
继续学习
||
<?php $i=1; while($i<=50){ echo $i." "; $i++; } ?>
提交重置代码