Trong bài này, tôi sẽ hướng dẫn các bạn tìm hiểu về cấu trúc của vòng lặp cuối cùng đó là vòng lặp for. Khác với 2 vòng lặp while và do – while (lặp với số lần chưa xác định trước) thì vòng lặp for là một cấu trúc lặp có số lần lặp được xác định trước. Sau đây chúng ta sẽ đi vào tìm hiểu về cấu trúc lặp này.

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

Công dụng

Vòng lặp for 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 được xác định trước. Vì vậy, cấu trúc lặp này rất mạnh và có thể sử dụng rất linh động trong nhiều tình huống khi viết chương trình.

Cú pháp

1
2
3
4
for ([biểu_thức_1]; [biểu_thức_2]; [biểu_thức_3]) {
    // Các lệnh
}
// Lệnh kế tiếp

trong đó:

  • biểu_thức_1 là biểu thức tính ra giá trị khởi đầu cho biến của for.
  • biểu_thức_2 là biểu thức tính ra giá trị điều kiện lặp của for.
  • biểu_thức_3 là bước nhảy của biến sau mỗi lần lặp.
  • Các lệnh là lệnh thực hiện trong thân của vòng lặp for.

Lưu ý: Các biểu thức có thể vắng mặt trong cấu trúc của vòng lặp for nhưng các dấu chấm phẩy vẫn phải có. Mỗi biểu thức trong cấu trúc for có thể là một hoặc nhiều biểu thức đơn. Nếu trong trường hợp một biểu thức có nhiều biểu thức đơn thì các biểu thức đơn được viết cách nhau bởi dấu phẩy (,) và các biểu thức đơn đó được thực hiện từ trái qua phải.

Cách hoạt động

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

Quy trình thực hiện trải qua các bước như sau:

Bước 1: Các lệnh ở biểu_thức_1 được thực hiện trước tiên. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau bởi dấu phẩy.

Bước 2: Kiểm tra giá trị của biểu_thức_2 (điều kiện lặp). Nếu biểu thức này có giá trị đúng (true) thì chuyển sang Bước 3, ngược lại thì chuyển đến Bước 6.

Bước 3: Lần lượt thực hiện các lệnh trong thân vòng lặp.

Bước 4: Thực hiện các lệnh trong biểu_thức_3. Trong biểu thức này có thể có nhiều biểu thức đơn và viết ngăn cách nhau bởi dấu phẩy.

Bước 5: Quay lại Bước 2.

Bước 6: Thực hiện các lệnh bên ngoài vòng lặp for.

Ví dụ

Ví dụ này sẽ in ra màn hình 5 số nguyên đầu tiên.

1
2
3
4
5
6
public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println(i);
        }
    }

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

Giải thích hoạt động của chương trình trên.

Bước 1: Khởi tạo biến i = 1 và vì 1 < 5 nên thực hiện câu lệnh bên trong for (hiển thị số 1 ra màn hình).

Bước 2: Tăng i lên 1 đơn vị, lúc này i = 2 < 5 nên hiển thị số 2 ra màn hình.

Bước 3: Tăng i lên 1 đơn vị, lúc này i = 3 < 5 nên hiển thị số 3 ra màn hình

Bước 4: Tăng i lên 1 đơn vị, lúc này i = 4 < 5 nên hiển thị số 4 ra màn hình.

Bước 5: Tăng i lên 1 đơn vị, lúc này i = 5 = 5 nên hiển thị số 5 ra màn hình.

Bước 6: Tăng i lên 1 đơn vị, lúc này <tt>i = 6 > 5</tt> nên không thực hiện câu lệnh bên trong for. Chương trình kết thúc.

2. Các dạng thường gặp của vòng lặp for

Dạng 1: Vòng lặp for không có biểu_thức_1 và <tt>biểu_thức_3</tt> (ý nghĩa giống vòng lặp while).

1
2
3
4
5
int sum = 0, k = 1;
for (; sum < 100; ) {
    sum += k;
    k++;
}

Dạng 2: Vòng lặp for không có biểu_thức_1.

1
2
3
4
int sum = 0, k = 1;
for (; sum < 100; k++) {
    sum += k;
}

Dạng 3: Vòng lặp for vắng mặt cả 3 biểu thức, khi đó thân của vòng lặp sẽ được thực hiện liên tục. Lúc đó, trong thân của vòng lặp phải có lệnh để thoát ra ngoài vòng for (chi tiết về phần này tôi sẽ giới thiệu trong bài sau).

1
2
3
4
for (;;) {
    // các lệnh
    // lưu ý: phải có lệnh để thoát ra ngoài vòng lặp
}

Dạng 4: Vòng lặp for đầy đủ.

1
2
3
4
int sum = 0, k;
for (k = 1; sum < 100; k++) {
    sum += k;
}

Dạng 5: Vòng lặp for đầy đủ và biểu_thức_1 có 2 biểu thức đơn.

1
2
3
4
int sum, k;
for (sum = 0, k = 1; sum < 100; k++) {
    sum += k;
}

Dạng 6: Vòng lặp for lồng nhau.

1
2
3
4
5
for (int row = 1; row <= 2; row++) {
    for (int col = 1; col <= 2; col++) {
        System.out.println(row + ", " + col);
    }
}

3. Ví dụ vòng lặp for

Vòng lặp for không có biểu_thức_1 và biểu_thức_3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package vong_lap_for;
public class InCacSoNhoHon3 {
    public static void main(String[] args) {
        int number = 0;
        
        /*
         * Trong trường hợp biến number còn nhỏ hơn 3
         * thì in ra giá trị của biến và sau đó tăng lên 1.
         */
        for (; number <3; ) {
            System.out.println(number);
            number++;
        }
    }
}

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

Vòng lặp for có biểu_thức_1 và biểu_thức_3 có 2 biểu thức đơn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package vong_lap_do_while;
import java.util.Scanner;
public class HienThiHaiSoKhacNhau {
    public static void main(String[] args) {
        int number1, number2;
        Scanner scanner = new Scanner(System.in);
        
        /*
         * Khởi tạo biến number1 = 0 và number2 = number1 + 3.
         * Nếu number2 còn nhỏ hơn 8 thì hiển thị biến number1 và number2
         * Tăng biến number1 và number2 lên 1 và tiếp tục kiểm tra.
         */
        for (number1 = 0, number2 = number1 + 3; number2 < 8; number1++, number2++) {
            System.out.println(number1 + ", " + number2);
        }
    }
}

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

Vòng lặp for lồng nhau

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package vong_lap_do_while;
import java.util.Scanner;
public class HienThiHaiSoKhacNhau {
    public static void main(String[] args) {
        int number1, number2;
        Scanner scanner = new Scanner(System.in);
        
        // Vòng lặp for bên ngoài thực thi 3 lần với row = 1, 2, 3.
        for (number1 = 1; number1 <= 3; number1++) {
            // Mỗi lần lặp for bên ngoài
            // thì vòng lặp for trong sẽ thực thi 2 lần với col = 1, 2.
            for (number2 = 1; number2 <= 2; number2++) {
                System.out.println("number1 = " + number1 + ", number2 = " + number2);
            }
        }
    }
}

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

Giải thích hoạt động của chương trình trên:

Bước 1: Vòng lặp for bên ngoài khởi tạo biến number1 =  1 và vì 1 < 3 nên chuyển sang Bước 2.

Bước 2: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 1number2 = 1 ra màn hình.

Bước 3: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 1number2 = 2 ra màn hình.

Bước 4: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 2 và vì 2 < 3 nên chuyển sang Bước 5.

Bước 5: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 2number2 = 1 ra màn hình.

Bước 6: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 2number2 = 2 ra màn hình.

Bước 7: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 3 và vì 3 = 3 nên chuyển sang Bước 8.

Bước 8: Vòng lặp for bên trong khởi tạo biến number2 = 1 và vì 1 < 2 nên sẽ hiển thị dòng number1 = 3number2 = 1 ra màn hình.

Bước 9: Thực hiện biểu thức number2++, lúc này number2 = 2 và vì 2 = 2 nên sẽ hiển thị dòng number1 = 3number2 = 2 ra màn hình.

Bước 10: Quay lại vòng lặp for bên ngoài thực hiện biểu thức number1++, lúc này biến number1 = 4 và vì 4 > 3 nên kết thúc vòng lặp.

4. Lời kết

Đây là bài vòng lặp cuối cùng trong Java – vòng lặp for.  Các bạn cố gắng nắm chắc chương này vì đây là một phần kiến thức rất quan trọng được sử dụng trong hầu hết các chương trình Java. Chúc các bạn thành công.

Theo: freetuts.net

 

ĐĂNG KÝ THÀNH VIÊN

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

NẾU NỘI DUNG HỮU ÍCH HÃY XEM QUẢNG CÁO ĐỂ ỦNG HỘ

Được quan tâm nhiều nhất

  • Apple Watch Series 5 Teardown - Always on Display Explained

  • iPhone 11 Pro Max Teardown - Tiny Motherboard & BIG Battery!

  • Phim Ngắn Đột Kích - Phiên bản 10 năm trước

  • Apple Watch Series 4 Teardown

Bạn thấy bài viết này thế nào?
Thể hiện yêu thương tác giả ở đây nhé!

Thích bài viết

thích

Chia sẻ ngay!

phuongle

Thành viên từ: 10/12/2019

Điểm uy tín: 5,987

SMod: 1,289 hướng dẫn đã chia sẻ

Team

Lập Trình Thành viên của Lập Trình

1 Thành viên

1,289 bài viết

Thêm bình luận

Bình luận bằng tài khoản Facebook

After viewing your support content - Please click advertisement for Support & Donate us team! Đóng