tek4

Vòng lặp While trong PHP

by - September. 21, 2021
Kiến thức
Học
<p>Trong b&agrave;i trước, v&ograve;ng lặp For v&agrave; Foreach đ&atilde; được đề cập. Ngo&agrave;i 2 v&ograve;ng lặp n&agrave;y, v&ograve;ng lặp While trong PHP cũng được sử dụng. Ta sẽ c&ugrave;ng t&igrave;m hiểu về kh&aacute;i niệm n&agrave;y c&ugrave;ng với v&iacute; dụ dẫn chứng.</p> <h1>V&ograve;ng lặp While</h1> <p>V&ograve;ng lặp While trong PHP c&oacute; thể được sử dụng để duyệt qua đoạn m&atilde; như v&ograve;ng lặp For. V&ograve;ng lặp While thực hiện lặp đi lặp lại một khối đoạn m&atilde; cho đến khi điều kiện được đ&aacute;nh gi&aacute; l&agrave; false v&agrave; ngừng v&ograve;ng lặp. Khi đ&oacute;, n&oacute; sẽ tho&aacute;t khỏi phần th&acirc;n của v&ograve;ng lặp While. V&ograve;ng lặp n&agrave;y được sử dụng nếu số lần lặp lại kh&ocirc;ng được biết trước. Đầu ti&ecirc;n điều kiện sẽ được kiểm tra. Nếu điều kiện l&agrave; đ&uacute;ng, đoạn m&atilde; sẽ được thực thi.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">while(điều kiện){&nbsp; //Đoạn m&atilde; }</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="java">&lt;?php&nbsp;&nbsp;&nbsp; $i=0;&nbsp;&nbsp;&nbsp; while($i &lt; 3){&nbsp;&nbsp;&nbsp; &nbsp; echo "$i\r\n";&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;$i++;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; ?&gt;</pre> <p>Kết quả:</p> <pre>0 1 2</pre> <h2>V&ograve;ng lặp While lồng nhau</h2> <p>Ch&uacute;ng ta c&oacute; thể sử dụng v&ograve;ng lặp While b&ecirc;n trong một v&ograve;ng lặp while kh&aacute;c trong PHP, n&oacute; được gọi l&agrave; v&ograve;ng lặp While lồng nhau. Tương tự như v&ograve;ng lặp For lồng nhau, v&ograve;ng lặp While b&ecirc;n trong sẽ được thực hiện đầy đủ cho mỗi lần lặp của v&ograve;ng lặp While b&ecirc;n ngo&agrave;i.</p> <p>V&iacute; dụ: Ta sẽ in một ma trận 3x3 trong chương tr&igrave;nh b&ecirc;n dưới.</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $i=0; while($i &lt; 3){ $j=0; while($j &lt; 3){ echo "a[$i][$j] "; $j++; } $i++; echo "\r\n"; } ?&gt;</pre> <p>Kết quả:</p> <pre>a[0][0] a[0][1] a[0][2] a[1][0] a[1][1] a[1][2] a[2][0] a[2][1] a[2][2]</pre> <h2>V&ograve;ng lặp While v&ocirc; hạn</h2> <p>Nếu gi&aacute; trị true trong v&ograve;ng lặp While kh&ocirc;ng bao giờ được trả về, n&oacute; sẽ l&agrave; một v&ograve;ng lặp While v&ocirc; hạn.</p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $a = 1; while ($a = 1) { echo "Xin chao cac ban!"; } ?&gt;</pre> <p>V&igrave; biến $a lu&ocirc;n bằng 1, n&ecirc;n điều kiện của v&ograve;ng lặp While sẽ lu&ocirc;n được đ&aacute;nh gi&aacute; l&agrave; true, do đ&oacute; v&ograve;ng lặp n&agrave;y sẽ được thực hiện v&ocirc; hạn, tức l&agrave; sẽ kh&ocirc;ng bao giờ ngừng.</p> <h2>V&ograve;ng lặp Do-While</h2> <p>V&ograve;ng lặp Do-While trong PHP c&oacute; thể được sử dụng để duyệt qua một đoạn m&atilde; như v&ograve;ng lặp While trong php. Tuy nhi&ecirc;n, v&ograve;ng lặp Do-While trong PHP sẽ đảm bảo thực thi đoạn m&atilde; b&ecirc;n trong th&acirc;n v&ograve;ng lặp được &iacute;t nhất l&agrave; một lần.</p> <p>V&ograve;ng lặp Do-While trong PHP được sử dụng để thực thi một đoạn m&atilde; của chương tr&igrave;nh nhiều lần. Nếu ta phải thực hiện v&ograve;ng lặp &iacute;t nhất l&agrave; một lần v&agrave; số lần lặp thậm ch&iacute; l&agrave; kh&ocirc;ng cố định, th&igrave; n&ecirc;n sử dụng v&ograve;ng lặp Do-While.</p> <p>V&igrave; v&ograve;ng lặp n&agrave;y c&oacute; đặc điểm l&agrave; thực thi trước, kiểm tra điều kiện sau. Kh&aacute;c với v&ograve;ng lặp While l&agrave; kiểm tra trước v&agrave; thực thi sau. C&ograve;n 2 kiểu v&ograve;ng lặp While v&agrave; Do-While đều sẽ thực hiện c&aacute;c v&ograve;ng lặp v&agrave; thực thi nhiều lần cho đoạn m&atilde;.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">do{ //Đoạn m&atilde; }while(điều kiện);</pre> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $i = 0; do{ echo "$i "; $i++; }while($i &lt; 3); ?&gt;</pre> <p>Kết quả:</p> <pre>0 1 2</pre> <p>V&iacute; dụ 3:</p> <pre class="EnlighterJSRAW" data-enlighter-language="php">&lt;?php $i = 0; do{ echo "$i "; $i++; }while($i &gt; 3); ?&gt;</pre> <p>Kết quả:</p> <pre>0</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, biến $i được g&aacute;n với gi&aacute; trị ban đầu l&agrave; 0, gi&aacute; trị 0 sẽ vẫn được in ra v&agrave; thực hiện tăng gi&aacute; trị l&ecirc;n 1 đơn vị (tức l&agrave; biến $i sẽ nhận gi&aacute; trị l&agrave; 1), rồi sau đ&oacute; gi&aacute; trị của biến $i được đem so s&aacute;nh với 3, v&agrave; điều kiện sẽ trả về l&agrave; false v&igrave; 1 &lt; 3.</p> <h2>So s&aacute;nh v&ograve;ng lặp While v&agrave; Do While</h2> <table> <tbody> <tr> <td style="text-align: center;">V&ograve;ng lặp While</td> <td style="text-align: center;">V&ograve;ng lặp Do While</td> </tr> <tr> <td>V&ograve;ng lặp sẽ kh&ocirc;ng được thực hiện nếu điều kiện đ&aacute;nh gi&aacute; l&agrave; false.</td> <td>V&ograve;ng lặp sẽ được thực hiện &iacute;t nhất 1 lần, cho d&ugrave; điều kiện được đ&aacute;nh gi&aacute; l&agrave; false.</td> </tr> <tr> <td>Kiểm tra điều kiện trước, thực thi đoạn m&atilde; sau.</td> <td>Thực thi đoạn m&atilde; trước, kiểm tra điều kiện sau.</td> </tr> <tr> <td>Kh&ocirc;ng sử dụng dấu (;) ở cuối c&acirc;u lệnh của v&ograve;ng lặp While.</td> <td>C&oacute; sử dụng dấu (;) ở cuối c&acirc;u lệnh của v&ograve;ng lặp.</td> </tr> </tbody> </table> <p>Tr&ecirc;n đ&acirc;y l&agrave; kh&aacute;i niệm v&agrave; v&iacute; dụ cơ bản về v&ograve;ng lặp While trong PHP. Hy vọng mọi người c&oacute; thể &aacute;p dụng v&agrave;o trong chương tr&igrave;nh của m&igrave;nh. Mọi người h&atilde;y tiếp tục theo d&otilde;i c&aacute;c b&agrave;i tiếp theo v&agrave; cập nhật c&aacute;c b&agrave;i mới nhất tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p> <p>P/s: Cảm ơn mọi người!</p>