Java while và do … while Loop

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng vòng lặp while và do while trong Java với sự trợ giúp của các ví dụ.

Trong lập trình máy tính, các vòng lặp được sử dụng để lặp lại một khối mã. Ví dụ, nếu bạn muốn hiển thị một tin nhắn 100 lần, thì bạn có thể sử dụng một vòng lặp. Nó chỉ là một ví dụ đơn giản; bạn có thể đạt được nhiều hơn nữa với các vòng lặp.

Trong hướng dẫn trước, bạn đã học về Java for loop . Ở đây, bạn sẽ tìm hiểu về whilevà do...whilelặp lại.

Vòng lặp while trong Java

whileVòng lặp Java được sử dụng để chạy một mã cụ thể cho đến khi một điều kiện nhất định được đáp ứng. Cú pháp của whilevòng lặp là:

while (testExpression) {
    // body of loop
}

Đây,

  1. Một whilevòng lặp đánh giá textExpression bên trong dấu ngoặc đơn ().
  2. Nếu textExpression đánh giá là true, mã bên trong whilevòng lặp được thực thi.
  3. Các textExpression được đánh giá lại.
  4. Quá trình này tiếp tục cho đến khi textExpression là false.
  5. Khi textExpression đánh giá là false, vòng lặp sẽ dừng lại.

Để tìm hiểu thêm về các điều kiện, hãy truy cập các toán tử quan hệ và logic trong Java .

Lưu đồ của vòng lặp while

Sơ đồ vòng lặp while trong Java

Ví dụ 1: Hiển thị các số từ 1 đến 5

// Program to display numbers from 1 to 5

class Main {
  public static void main(String[] args) {

    // declare variables
    int i = 1, n = 5;

    // while loop from 1 to 5
    while(i <= n) {
      System.out.println(i);
      i++;
    }
  }
}

Đầu ra

1
2
3
4
5

Đây là cách chương trình này hoạt động.

IterationVariableCondition: i <= nAction
1sti = 1
n = 5
true1 is printed.
i is increased to 2.
2ndi = 2
n = 5
true2 is printed.
i is increased to 3.
3rdi = 3
n = 5
true3 is printed.
i is increased to 4.
4thi = 4
n = 5
true4 is printed.
i is increased to 5.
5thi = 5
n = 5
true5 is printed.
i is increased to 6.
6thi = 6
n = 5
falseThe loop is terminated

Ví dụ 2: Chỉ tổng các số dương

// Java program to find the sum of positive numbers
import java.util.Scanner;

class Main {
  public static void main(String[] args) {
      
    int sum = 0;

    // create an object of Scanner class
    Scanner input = new Scanner(System.in);

    // take integer input from the user
    System.out.println("Enter a number");
    int number = input.nextInt();
	   
    // while loop continues 
    // until entered number is positive
    while (number >= 0) {
      // add only positive numbers
      sum += number;

      System.out.println("Enter a number");
      number = input.nextInt();
    }
	   
    System.out.println("Sum = " + sum);
    input.close();
  }
}

Đầu ra

Enter a number
25
Enter a number
9
Enter a number
5
Enter a number
-3
Sum = 39

Trong chương trình trên, chúng ta đã sử dụng lớp Máy quét để lấy đầu vào từ người dùng. Ở đây, nextInt()lấy đầu vào số nguyên từ người dùng.

Các whilevòng lặp tiếp tục cho đến khi người dùng nhập vào một số âm. Trong mỗi lần lặp, số do người dùng nhập sẽ được thêm vào sumbiến.

Khi người dùng nhập một số âm, vòng lặp kết thúc. Cuối cùng, tổng tổng được hiển thị.

Java do … vòng lặp while

Các do...whilevòng lặp tương tự như vòng lặp while. Tuy nhiên, phần thân của do...whilevòng lặp được thực thi một lần trước khi biểu thức kiểm tra được kiểm tra. Ví dụ,

do {
    // body of loop
} while(textExpression)

Đây,

  1. Phần thân của vòng lặp được thực thi lúc đầu. Sau đó, textExpression được đánh giá.
  2. Nếu textExpression được đánh giá là true, phần nội dung của vòng lặp bên trong docâu lệnh sẽ được thực thi lại.
  3. Các textExpression được đánh giá một lần nữa.
  4. Nếu textExpression được đánh giá là true, phần nội dung của vòng lặp bên trong docâu lệnh sẽ được thực thi lại.
  5. Quá trình này tiếp tục cho đến khi textExpression đánh giá thành false. Sau đó, vòng lặp dừng lại.

Lưu đồ của vòng lặp do … while

Lưu đồ của Java vòng lặp do while

Hãy xem hoạt động của do...whilevòng lặp.

Ví dụ 3: Hiển thị các số từ 1 đến 5

// Java Program to display numbers from 1 to 5

import java.util.Scanner;

// Program to find the sum of natural numbers from 1 to 100.

class Main {
  public static void main(String[] args) {

    int i = 1, n = 5;

    // do...while loop from 1 to 5
    do {
      System.out.println(i);
      i++;
    } while(i <= n);
  }
}

Đầu ra

1
2
3
4
5

Đây là cách chương trình này hoạt động.

IterationVariableCondition: i <= nAction
i = 1
n = 5
not checked1 is printed.
i is increased to 2.
1sti = 2
n = 5
true2 is printed.
i is increased to 3.
2ndi = 3
n = 5
true3 is printed.
i is increased to 4.
3rdi = 4
n = 5
true4 is printed.
i is increased to 5.
4thi = 5
n = 5
true6 is printed.
i is increased to 6.
5thi = 6
n = 5
falseThe loop is terminated

Ví dụ 4: Tổng các số dương

// Java program to find the sum of positive numbers
import java.util.Scanner;

class Main {
  public static void main(String[] args) {
      
    int sum = 0;
    int number = 0;

    // create an object of Scanner class
    Scanner input = new Scanner(System.in);
	   
    // do...while loop continues 
    // until entered number is positive
    do {
      // add only positive numbers
      sum += number;
      System.out.println("Enter a number");
      number = input.nextInt();
    } while(number >= 0); 
	   
    System.out.println("Sum = " + sum);
    input.close();
  }
}

Đầu ra 1

Enter a number
25
Enter a number
9
Enter a number
5
Enter a number
-3
Sum = 39

Tại đây, người dùng nhập một số dương, số đó được thêm vào biến tổng . Và quá trình này tiếp tục cho đến khi số âm. Khi số âm, vòng lặp kết thúc và hiển thị tổng mà không thêm số âm.

Đầu ra 2

Enter a number
-8
Sum is 0

Tại đây, người dùng nhập một số âm. Điều kiện kiểm tra sẽ là falsenhưng mã bên trong vòng lặp thực thi một lần.

Vòng lặp while vô hạn

Nếu điều kiện của một vòng lặp luôn là true, vòng lặp sẽ chạy trong khoảng thời gian vô hạn (cho đến khi bộ nhớ đầy). Ví dụ,

// infinite while loop
while(true){
    // body of loop
}

Đây là một ví dụ về do...whilevòng lặp vô hạn .

// infinite do...while loop
int count = 1;
do {
   // body of loop
} while(count == 1)

Trong các chương trình trên, textExpression luôn là true. Do đó, phần thân của vòng lặp sẽ chạy trong thời gian vô hạn.

vòng lặp for và while

Các forvòng lặp được sử dụng khi số lần lặp được biết đến. Ví dụ,

for (let i = 1; i <=5; ++i) {
   // body of loop
}

Và whilevà do...whilevòng lặp thường được sử dụng khi số lần lặp là không xác định. Ví dụ,

while (condition) {
    // body of loop
}








Gõ tìm kiếm nhanh...