Vòng lặp while trong java với ví dụ cụ thể

Ở bài trước, chúng ta đã tìm hiểu vòng lặp for. Ở bài này, chúng ta sẽ tiếp tục đi tìm hiểu vòng lặp while. 

Cú pháp vòng lặp while 

while (điều kiện) {
   // code block
}

Cơ chế hoạt động của vòng lặp while:

B1: đầu tiên sẽ tiến hành kiểm tra điều kiện. Nếu kết quả là:

  • true: thực thi code bên trong vòng lặp while
  • false: thoát ra khỏi vòng lặp while

B2: Quay lại B1 để kiểm tra điều kiện.

Sơ đồ hoạt động

while loop

 

Ví dụ: Xuất ra màn hình giá trị giảm dần 1 đơn vị từ 10 đến 1

public class Main {

    public static void main(String[] args) {
        
        int i = 10;
        // kiếm tra điều kiện 
        while (i >= 0) {
            // Xuất ra màn hình giá trị i 
            System.out.println(i);
            // Cập nhật biến đếm 
            i--;
        }
    }
}

Output:

10
9
8
7
6
5
4
3
2
1

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

Đối với bất kỳ một kỹ thuật lặp nào đều sẽ có những trường hợp lặp vô hạn có chủ ý hoặc ko có chủ ý.

Chúng ta sẽ đi đến vòng lặp vô hạn không có chủ ý trước nhé, mình hay gọi là code lụi, lỗi này rất thường hay gặp với các bạn vừa bắt đầu học lập trình.

public class Main {

    public static void main(String[] args) {

        int i = 10;
        // kiếm tra điều kiện
        while (i >= 1) {
            // Xuất ra màn hình giá trị i
            System.out.println(i);
            // Quên Cập nhật biến đếm
            //i--;
        }
    }
}

Đoạn code ở trên mình thấy các bạn hay gặp nhất là quên cập nhật lại biến đếm, thế là biến i của chúng ta cứ mãi là 10, và điều kiện sẽ luôn luôn đúng. Chúng ta có một vòng lặp vô hạn. =)))

Vòng lặp vô hạn có chủ ý, vòng lặp này thường được dùng với mệnh đề break. code bên trong vòng lặp while sẽ thực hiện một nhiệm vụ gì đó mà không biết trước được số lần lặp cho đến khi nó đạt được một kết quả mong muốn. 

Vòng lặp while không có break

public class Main {

    public static void main(String[] args) {

        while(true) {
            System.out.println("vong lap vo han");
        }
    }
}

Output: Một loạt các dòng chữ Vong lap vo han

Vòng lặp while với lệnh break

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

        while(true) {
            System.out.println("vong lap vo han");
            break;
        }
    }
}

Output: Vong lap vo han

Khi gặp lệnh break code của chúng ta sẽ thoát ra khỏi vòng lặp hoàn toàn và chúng ta chỉ nhận được một dòng Vong lap vo han duy nhất.

Bài tập thực hành

Sử dụng vòng lặp while để hoàn thành các bài tập sau:

1, Viết chương trình tính tổng các số nguyên từ 1 đến 10.

2, Viết chương trình tìm một số nguyên a trong mảng arr cho trước. a được nhập vào từ bàn phím. Xuất ra màn hình vị trí của a trong mảng nếu tìm thấy, ngược lại là “khong tim thay”.

3, Cho một mảng số nguyên arr, viết chương trình java xuất ra giá trị đảo ngược mảng, ví dụ arr[] = {1, 2, 3, 4, 5} => output 5, 4, 3, 2, 1.

4, Viết chương trình in dãy số fibonacci của n, với n là số nguyên nhập vào từ bàn phím.

Bài tham khảo

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        /*
            1, Viết chương trình tính tổng các số nguyên từ 1 đến 10.
         */

        int sum = 0;
        int i1 = 1;
        while (i1 <= 10) {
            sum += i1;
            i1++;
        }

        System.out.println("Tong 1 den 10: " + sum);




        /*
            2, Viết chương trình tìm một số nguyên a trong mảng arr cho trước. a được nhập vào từ bàn phím.
         */

        int arr[] = {1, 2, 4, 6, 7, 8, 9};
        int a = 4, i2 = 0;
        while (i2 < arr.length) {
            if (arr[i2] == a) {
                System.out.println("Vi tri: " + i2);
            }
            i2++;
        }


        /*
            3, Cho một mảng số nguyên arr, viết chương trình java đảo ngược mảng, ví dụ arr[] = {1, 2, 3, 4, 5} => output {5, 4, 3, 2, 1}.
         */

        int[] arr3 = {1, 2, 3, 4, 5};
        int i3 = arr3.length - 1;
        while (i3 >= 0) {
            System.out.print(arr3[i3] +  " ");
            i3--;
        }


        /*
            4, Viết chương trình in dãy số fibonacci của n, với n là số nguyên nhập vào từ bàn phím.
         */

        System.out.print("Nhap n: ");
        int fb = scanner.nextInt();
        int f1 = 0, f2 = 1, i4 = 2;

        System.out.print(f1 + " ");
        System.out.print(f2 + " ");
        while (i4 <= fb) {
            int newf = f1 + f2;
            System.out.print(newf + " ");
            f1 = f2;
            f2 = newf;
            i4++;
        }
    }

}
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x