tek4

Vòng lặp while trong JavaScript

by - September. 26, 2021
Kiến thức
Học
<p><img class="aligncenter wp-image-8298 size-full" src="https://tek4.vn/wp-content/uploads/2021/02/Capture-92.png" alt="V&ograve;ng lặp while trong JavaScript" width="559" height="343" /></p> <p>Trong b&agrave;i viết n&agrave;y, ta sẽ c&ugrave;ng t&igrave;m hiểu về v&ograve;ng lặp while trong JavaScript c&ugrave;ng với sự trợ gi&uacute;p của c&aacute;c v&iacute; dụ dẫn chứng.</p> <h1>V&ograve;ng lặp while trong JavaScript</h1> <p>Trong b&agrave;i trước, ta đ&atilde; t&igrave;m hiểu về v&ograve;ng lặp for trong JavaScript, c&aacute;c bạn c&oacute; thể đọc về v&ograve;ng lặp for trong JavaScript tại <a href="https://tek4.vn/vong-lap-for-trong-javascript/">đ&acirc;y</a>. Trong b&agrave;i viết n&agrave;y, ta sẽ c&ugrave;ng t&igrave;m hiểu về v&ograve;ng lặp while v&agrave; sự kh&aacute;c biệt giữa v&ograve;ng lặp while với v&ograve;ng lặp for.</p> <p><em>C&uacute; ph&aacute;p của v&ograve;ng lặp while:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">while (điều kiện) { &nbsp;&nbsp;&nbsp;&nbsp; // Đoạn m&atilde; }</pre> <p>Ở đ&acirc;y:</p> <ul> <li>V&ograve;ng lặp while sẽ thực hiện đ&aacute;nh gi&aacute; điều kiện b&ecirc;n trong dấu ngoặc đơn ().</li> <li>Nếu điều kiện được đ&aacute;nh gi&aacute; l&agrave; true (đ&uacute;ng), đoạn m&atilde; b&ecirc;n trong v&ograve;ng lặp while được thực thi.</li> <li>Điều kiện được đ&aacute;nh gi&aacute; lại sau mỗi lần lặp.</li> <li>Qu&aacute; tr&igrave;nh n&agrave;y tiếp tục cho đến khi điều kiện được đ&aacute;nh gi&aacute; l&agrave; false (sai).</li> <li>Khi điều kiện được đ&aacute;nh gi&aacute; l&agrave; false (sai), v&ograve;ng lặp sẽ dừng lại.</li> </ul> <p>V&iacute; dụ: Sử dụng v&ograve;ng lặp while trong JavaScript.</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">var a = 1; while (a &lt;= 5) { &nbsp;&nbsp;&nbsp; console.log("Lập tr&igrave;nh JavaScript"); &nbsp;&nbsp;&nbsp; a += 1; }</pre> <p>Kết quả:</p> <pre>Lập tr&igrave;nh JavaScript Lập tr&igrave;nh JavaScript Lập tr&igrave;nh JavaScript Lập tr&igrave;nh JavaScript Lập tr&igrave;nh JavaScript</pre> <p>C&aacute;ch thức hoạt động của đoạn m&atilde; b&ecirc;n tr&ecirc;n c&oacute; thể được m&ocirc; tả cụ thể trong bảng b&ecirc;n dưới như sau.</p> <table> <tbody> <tr> <td style="text-align: center;">V&ograve;ng lặp</td> <td style="text-align: center;">Biến</td> <td style="text-align: center;">Điều kiện a &lt;=&nbsp; 10</td> <td style="text-align: center;">H&agrave;nh động</td> </tr> <tr> <td style="text-align: center;">Lần 1</td> <td style="text-align: center;">a=1</td> <td style="text-align: center;">true</td> <td>In ra chuỗi k&yacute; tự, i được tăng l&ecirc;n 1 đơn vị.</td> </tr> <tr> <td style="text-align: center;">Lần 2</td> <td style="text-align: center;">a=2</td> <td style="text-align: center;">true</td> <td>In ra chuỗi k&yacute; tự, i được tăng l&ecirc;n 1 đơn vị.</td> </tr> <tr> <td style="text-align: center;">Lần 3</td> <td style="text-align: center;">a=3</td> <td style="text-align: center;">true</td> <td>In ra chuỗi k&yacute; tự, i được tăng l&ecirc;n 1 đơn vị.</td> </tr> <tr> <td style="text-align: center;">Lần 4</td> <td style="text-align: center;">a=4</td> <td style="text-align: center;">true</td> <td>In ra chuỗi k&yacute; tự, i được tăng l&ecirc;n 1 đơn vị.</td> </tr> <tr> <td style="text-align: center;">Lần 5</td> <td style="text-align: center;">a=5</td> <td style="text-align: center;">true</td> <td>In ra chuỗi k&yacute; tự, i được tăng l&ecirc;n 1 đơn vị.</td> </tr> <tr> <td style="text-align: center;">Lần 6</td> <td style="text-align: center;">a=6</td> <td style="text-align: center;">false</td> <td>Kết th&uacute;c v&ograve;ng lặp.</td> </tr> </tbody> </table> <p>V&iacute; dụ 2:</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">let a = 1; while(a != 14) { &nbsp;&nbsp;&nbsp; a = prompt('Nhập mật khẩu: '); } console.log("Mật khẩu ch&iacute;nh x&aacute;c");</pre> <p>Trong chương tr&igrave;nh tr&ecirc;n, người d&ugrave;ng được y&ecirc;u cầu nhập mật khẩu. V&ograve;ng lặp while sẽ được thực hiện cho tới khi người d&ugrave;ng nhập ch&iacute;nh x&aacute;c số 14, l&agrave; gi&aacute; trị để dừng v&ograve;ng lặp while. Nếu người d&ugrave;ng nhập kh&aacute;c số 14 th&igrave; v&ograve;ng lặp sẽ được tiếp tục thực thi.</p> <h2>V&ograve;ng lặp do&hellip;while</h2> <p>Ngo&agrave;i v&ograve;ng lặp while được sử dụng b&ecirc;n tr&ecirc;n, ta c&oacute; một dạng v&ograve;ng lặp kh&aacute;c l&agrave; do...while trong JavaScript.</p> <p><em>C&uacute; ph&aacute;p:</em></p> <pre class="EnlighterJSRAW" data-enlighter-language="generic">do { &nbsp;&nbsp;&nbsp; // Đoạn m&atilde; } while(Điều kiện)</pre> <p>Trong đ&oacute;:</p> <ul> <li>Phần th&acirc;n của v&ograve;ng lặp được thực thi lần đầu. Sau đ&oacute;, điều kiện được đ&aacute;nh gi&aacute;.</li> <li>Nếu điều kiện được đ&aacute;nh gi&aacute; l&agrave; true (đ&uacute;ng), phần th&acirc;n b&ecirc;n trong của v&ograve;ng lặp được thực thi lại.</li> <li>Điều kiện được đ&aacute;nh gi&aacute; lại một lần nữa.</li> <li>Nếu điều kiện được đ&aacute;nh gi&aacute; l&agrave; false (sai), v&ograve;ng lặp sẽ ngừng thực thi.</li> <li>Qu&aacute; tr&igrave;nh n&agrave;y tiếp tục cho đến khi điều kiện được đ&aacute;nh gi&aacute; l&agrave; false (sai). L&uacute;c đ&oacute;, v&ograve;ng lặp sẽ dừng lại.</li> </ul> <p><strong><span style="background-color: #ffff00;">Ch&uacute; &yacute;: V&ograve;ng lặp do&hellip;while tương tự như v&ograve;ng lặp while. Sự kh&aacute;c biệt duy nhất l&agrave; trong v&ograve;ng lặp do&hellip;while, phần th&acirc;n của v&ograve;ng lặp sẽ được thực thi &iacute;t nhất một lần bất kể điều kiện được đ&aacute;nh gi&aacute; l&agrave; đ&uacute;ng hay sai.</span></strong></p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">let a = 6; do { console.log(a); a++; }while(a &lt; 5);</pre> <p>Kết quả:</p> <pre>6</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, ta thực hiện g&aacute;n gi&aacute; trị ban đầu cho biến a l&agrave; 6. Đoạn m&atilde; b&ecirc;n trong v&ograve;ng lặp do&hellip;while được thực hiện in ra gi&aacute; trị của biến a v&agrave; tăng gi&aacute; trị của biến a l&ecirc;n 1 đơn vị. Tuy nhi&ecirc;n, điều kiện l&agrave; a &lt; 5, m&agrave; biến a l&uacute;c n&agrave;y chứa gi&aacute; trị l&agrave; 7, do đ&oacute; điều kiện được đ&aacute;nh gi&aacute; l&agrave; sai. Kết th&uacute;c v&ograve;ng lặp. Như vậy, đoạn m&atilde; b&ecirc;n trong v&ograve;ng lặp được thực thi 1 lần. Nếu ta sử dụng v&ograve;ng lặp while như b&ecirc;n dưới, th&igrave; đoạn m&atilde; kh&ocirc;ng được thực thi bởi điều kiện được đ&aacute;nh gi&aacute; trước khi thực thi đoạn m&atilde;.</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">let a = 6; while(a &lt; 5){ console.log(a); a++; }</pre> <h2>V&ograve;ng lặp while v&ocirc; hạn</h2> <p>Nếu điều kiện của v&ograve;ng lặp được đ&aacute;nh gi&aacute; l&agrave; lu&ocirc;n đ&uacute;ng, th&igrave; v&ograve;ng lặp sẽ chạy trong thời gian v&ocirc; hạn (cho đến khi bộ nhớ đầy).</p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">while(1){ console.log("V&ograve;ng lặp v&ocirc; hạn "); }</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, v&igrave; c&aacute;c số kh&aacute;c 0 sẽ được coi l&agrave; true (đ&uacute;ng), do đ&oacute;, điều kiện sẽ lu&ocirc;n được đ&aacute;nh gi&aacute; l&agrave; true v&agrave; đoạn m&atilde; b&ecirc;n trong v&ograve;ng lặp while sẽ được thực thi v&ocirc; hạn.</p> <p>V&iacute; dụ: V&ograve;ng lặp do&hellip;while v&ocirc; hạn.</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">do{ console.log("V&ograve;ng lặp v&ocirc; hạn "); }while(1);</pre> <h2>So s&aacute;nh v&ograve;ng lặp while v&agrave; v&ograve;ng lặp for</h2> <p><em>1. V&ograve;ng lặp for thường được sử dụng khi đ&atilde; biết số lần lặp.</em></p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">for (let a = 1; a &lt;= 3; ++a) { console.log("Lập tr&igrave;nh JavaScript"); }</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, ta biết trước l&agrave; sẽ in ra chuỗi k&yacute; tự l&agrave; 3 lần.</p> <p><em>2. V&agrave; v&ograve;ng lặp while v&agrave; do...while thường được sử dụng khi chưa biết trước số lần lặp nhất định.</em></p> <p>V&iacute; dụ:</p> <pre class="EnlighterJSRAW" data-enlighter-language="js">var a = 0; while(a!=1){ a = parseInt(prompt('Nhập một số: ')); }</pre> <p>Trong đoạn m&atilde; tr&ecirc;n, v&ograve;ng lặp sẽ được thực thi cho tới khi m&agrave; người d&ugrave;ng nhập gi&aacute; trị l&agrave; 1. V&agrave; sẽ kh&ocirc;ng biết được khi n&agrave;o th&igrave; người d&ugrave;ng nhập đ&uacute;ng gi&aacute; trị l&agrave; 1, do đ&oacute;, số lần lặp của v&ograve;ng lặp while l&agrave; kh&ocirc;ng biết trước.</p> <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 JavaScript. 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 tiếp theo về lập tr&igrave;nh JavaScript tr&ecirc;n <a href="http://tek4.vn">tek4</a> nh&eacute;!</p> <p>P/s: Cảm ơn mọi người đ&atilde; tin tưởng tek4!</p>