1. Vòng lặp là gì?

Vòng lặp là một thứ gì đó sẽ lặp đi lặp lại hàng ngày. Ví dụ như ăn ngủ nghỉ,… Đó là những gì ta hiểu về vòng lặp trong cuộc sống đời thực. Vậy trong lập trình thì sao? Vòng lặp được sử dụng trong lập trình để lặp lại một khối code cụ thể cho đến khi một điều kiện nhất định được đáp ứng (hay nói cách khác, biểu thức kiểm tra cho kết quả là false).

Hãy tưởng tượng ta cần in một câu nào đó 5000 lần trên màn hình của mình. Vậy có thể làm điều đó bằng cách sử dụng câu lệnh in 5000 lần. Ta sẽ bắt buộc sử dụng vòng lặp ở đây(ta có thể chăm ngồi gõ tay 5000 câu lệnh cũng được).

Vòng lặp trong lập trình có tầm quan trọng và vai trò rất lớn của mọi ngôn ngữ lập trình. Nó đề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 whilefor . Trong bài này ta sẽ học về vòng lặp while

2. Vòng lặp while trong Java

Vòng lặp while trong Java được sử dụng để lặp lại một khối lệnh nếu thỏa điều kiện nào đó miễn là điều kiện được chỉ định là true . Số lần lặp sẽ không được xác định trước và đ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. Vì vậy nếu số lần lặp không được xác định trước thì vòng lặp lặp while được khuyến khích sử dụng trong trường hợp này.

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

Ví dụ:

class Main {
  public static void main(String[] args) {
    int i = 0;
    while (i < 5) {
      System.out.println(i);
      i++;
    }  
  }
}

Kết quả

0
1
2
3
4

3. Nguyên lý hoạt động của vòng lặp while

Đầ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.

Quá trình kiểm tra điều kiện lặp và thực thi dòng lệnh trong while sẽ chấm dứt cho đến khi điều kiện lặp sai (false). Tức là, nếu bất cứ khi nào điều kiện lặp sai (false) thì vòng lặp while sẽ chấm dứt.

Ví dụ:

class Main {
    public static void main(String[] args) {
    	int i = 1;
        while (i < 11){
          System.out.println(i);
          i++;
        }
    }
}

Kết quả

1
2
3
4
5
6
7
8
9
10

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ếu ngay từ đầu biểu thức điều kiện đã 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 để đả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 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. Không sẽ dẫn đến việc lặp vô hạn

4. Vòng lặp do while trong Java

Vòng lặp do 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à do while chỉ kiểm tra điều kiện lặp sau khi thân vòng lặp đã được thực hiện một lần.

Như vậy ta thấy rằng vòng lặp do while cũng giống vòng lặp while nhưng khối lệnh trong vòng lặp thực hiện trước rồi mới kiểm tra điều kiện lặp sau. Vì thế khi dùng do while thì vòng lặp sẽ được thực hiện ít nhất một lần.

Cú pháp :

do {
    // Các lệnh
} while (điều_kiện_lặp);
// 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à đúng (true) hoặc sai (false).
  • Các lệnh nằm trong cặp dấu {} là thân của vòng lặp.

Nguyên lý hoạt động của do while gần giống như while . Nhưng nó thực thi dòng lệnh trong do while trước. Sau đó, kiểm tra điều kiện lặp. nếu điều kiện lặp đúng (true) thì thực thi dòng lệnh trong do while lần nữa. Quá trình kiểm tra điều kiện lặp và thực thi dòng lệnh trong do while sẽ chấm dứt cho đến khi điều kiện lặp sai (false).

Ví dụ:

class Main {
  public static void main(String[] args) {
    int i = 0;
    do {
      System.out.println(i);
      i++;
    }
    while (i < 5);  
  }
}

Kết quả

0
1
2
3
4

Trong một số trường hợp thì kết quả của 2 vòng lặp whiledo while là giống nhau nên các bạn cố gắng nắm chắc 2 loại vòng lặp này để lựa chọn loại vòng lặp phù hợp với yêu cầu của chương trình