PHP開發基礎教學循環語句登入

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++; } ?>
章節課件