Chức năng của vòng lặp while là gì

Trong Java cũng như các ngôn ngữ lập trình khác, bên cạnh cấu trúc điều khiển thì cấu trúc lặp cũng được sử dụng rất nhiều để giải quyết các yêu cầu mà chương trình đặt ra. Các cấu trúc lặp đóng vai trò thực sự quan trọng trong lập trình. Những cấu trúc này được sử dụng để thực hiện lặp đi lặp lại nhiều lần một nhóm các lệnh nào đó và sau khi quá trình lặp kết thúc thì sẽ đạt được kết quả tính toán hay xử lý cần thiết mà chúng ta mong muốn.

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nhận thấy tầm quan trọng và vai trò rất lớn của cấu trúc lặp nên mọi ngôn ngữ lập trình đều xây dựng sẵn các cấu trúc lặp này để hỗ trợ cho việc tính toán hay xử lý các vấn đề lặp. Trong ngôn ngữ lập trình Java, chúng ta có 3 loại cấu trúc lặp thường gặp đó là while, do - while và for. Trong bài đầu tiên của chương này, tôi sẽ trình bày cấu trúc vòng lặp while và các vòng lặp còn lại sẽ lần lượt được trình bày trong những bài sau.

1. Cú pháp, cách hoạt động và công dụng vòng lặp while. 

Công dụng.

Vòng lặp while là cấu trúc điều khiển lặp được dùng để thực hiện một lệnh hay một khối lệnh với số lần lặp chưa xác định trước. Với cấu trúc này điều kiện lặp được kiểm tra trước khi thực hiện thân của vòng lặp.

Cú pháp.

while [điều_kiện_lặp] { // Các lệnh } // Lệnh kế tiếp

trong đó:

  • điều_kiện_lặp là biểu thức để xác định điều kiện lặp. Biểu thức này phải trả về giá trị là true hoặc false.
  • Các lệnh nằm trong cặp dấu {} là thân của vòng lặp.

Cách hoạt động.

Lưu đồ hoạt động của vòng lặp while như sau:

Bài viết này được đăng tại [free tuts .net]

Đầu tiên, vòng lặp while sẽ tính giá trị của biểu thức điều_kiện_lặp. Khi biểu thức này có giá trị đúng [true] thì những lệnh nằm trong thân của vòng lặp sẽ được thực hiện; sau khi thực hiện xong các lệnh này thì biểu thức điều_kiện_lặp được kiểm tra lại để quyết định có lặp tiếp hay không.

Như vậy, những lệnh nằm trong thân vòng lặp sẽ lần lượt được làm đi làm lại nhiều lần trong khi biểu thức điều_kiện_lặp còn có giá trị đúng. Nếu đến một lúc nào đó biểu thức điều_kiện_lặp có giá trị sai [false] thì các lệnh trong thân vòng lặp sẽ không được thực hiện và vòng lặp while sẽ kết thúc.

Lưu ý:

  • Vòng lặp while kiểm tra điều kiện trước rồi mới thực hiện các câu lệnh trong thân vòng lặp nên nếu ngay từ đầu biểu thức điều_kiện_lặp đã có giá trị sai thì vòng lặp while sẽ không được thực hiện bất cứ lần nào.
  • Trong thân của vòng lặp while phải có lệnh làm thay đổi giá trị của biểu thức điều_kiện_lặp để đảm bảo sau một số lần thực hiện thì biểu thức điều kiện sẽ có giá trị sai và kết thúc vòng lặp. Nếu trong trường hợp thân của vòng lặp không có lệnh làm thay đổi giá trị của biểu thức thì phải sử dụng từ khóa break để thoát khỏi vòng lặp.

2. Ví dụ.

Sau đây tôi sẽ đưa ra một ví dụ đơn giản có sử dụng vòng lặp while: Viết chương trình nhập vào các số nguyên và tính tổng các số đó, nếu tổng lớn hơn > 100 thì kết thúc vòng lặp và hiển thị thông báo tổng của các số đã nhập.

Ví dụ.

package vong_lap_while; import java.util.Scanner; public class TinhTongCacSoNguyen { public static void main[String[] args] { int number, sum = 0; Scanner scanner = new Scanner[System.in]; // bắt đầu vòng lặp // kiểm tra nếu biến sum còn nhỏ hơn 100 thì còn thực hiện. while [sum < 100] { System.out.println["Nhập vào số nguyên bất kỳ: "]; number = scanner.nextInt[]; sum += number; // sum = sum + number; } System.out.println["Tổng các số nguyên vừa nhập = " + sum]; } }

Kết quả sau khi biên dịch chương trình như sau:

Quá trình hoạt động của chương trình này như sau:

Bước 1: Khởi tạo biến tổng sum = 0.

Bước 2: Kiểm tra sum < 100 đúng nên nhập vào số 1 và thực hiện lệnh sum = sum + number = 0 + 1 = 1.

Bước 3: Kiểm tra sum < 100 đúng nên nhập vào số 6 và thực hiện lệnh sum = sum + number = 1 + 6 = 7.

Bước 4: Kiểm tra sum < 100 đúng nên nhập vào số 9 và thực hiện lệnh sum = sum + number = 7 + 9 = 16.

Bước 5: Kiểm tra sum < 100 đúng nên nhập vào số 15 và thực hiện lệnh sum = sum + number = 16 + 15 = 31.

Bước 6: Kiểm tra sum < 100 đúng nên nhập vào số 18 và thực hiện lệnh sum = sum + number = 31 + 18 = 49.

Bước 7: Kiểm tra sum < 100 đúng nên nhập vào số 1 và thực hiện lệnh sum = sum + number = 49 + 1 = 50.

Bước 8: Kiểm tra sum < 100 đúng nên nhập vào số 20 và thực hiện lệnh sum = sum + number = 50 + 20 = 70.

Bước 9: Kiểm tra sum < 100 đúng nên nhập vào số 55 và thực hiện lệnh sum = sum + number = 70 + 55 = 125.

Bước 10: Kiểm tra sum < 100 sai nên kết thúc vòng lặp while và hiển thị tổng sum = 125 ra màn hình.

3. Lời kết.

Trong bài này tôi đã giới thiệu đến các bạn cấu trúc lặp đầu tiên đó là cấu trúc vòng lặp while bao gồm cú pháp, công dụng và ví dụ minh họa. Để các bạn có thể nắm rõ hơn về vòng lặp này, tôi có đưa ra một số các bài tập cho các bạn luyện tập. Sang bài sau, chúng ta sẽ tìm hiểu về cấu trúc vòng lặp do - while. Các bạn theo dõi nhé!

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Các vòng lặp được sử dụng trong lập trình để lặp lại một khối mã nguồn cụ thể. Trong bài này, bạn sẽ được học cách viết vòng lặp while và do…while trong lập trình C++.

Các vòng lặp được sử dụng trong lập trình để lặp lại một khối mã nguồn cụ thể cho tới khi gặp một điều kiện kết thúc. Có ba kiểu vòng lặp trong lập trình C++:

  1. Vòng lặp for
  2. Vòng lặp while
  3. Vòng lặp do…while

Cú pháp của một vòng lặp while là:

while [biểu_thức_kiểm_tra] { // mã nguồn }

trong đó, biểu_thức_kiểm_tra được kiểm tra mỗi khi bắt đầu một chu kỳ mới của vòng lặp while.

Vòng lặp while hoạt động như thế nào?

  • Vòng lặp while đánh giá biểu thức kiểm tra
  • Nếu biểu thức kiểm tra là đúng, mã nguồn trong thân vòng lặp while sẽ được thực hiện.
  • Sau đó biểu thức kiểm tra được đánh giá lần nữa. Quá trình này tiếp tục cho tới khi biểu thức kiểm tra là sai.
  • Khi biểu thức kiểm tra là sai, vòng lặp while sẽ bị ngắt.

Flowchart của vòng lặp while

Ví dụ 1: Vòng lặp while trong C++

// Chương trình C++ để tính giá trị giai thừa của một số // Giá trị giai thừa của n = 1*2*3...*n #include using namespace std; int main[] { int number, i = 1, factorial = 1; cout > number; while [ i

Chủ Đề