Java 8 – Vòng lặp


Được đăng vào ngày 20/04/2017 | 0 bình luận
Java 8 – Vòng lặp
Đánh giá bài viết

Trong Java có các câu lệnh có tác dụng thực thi các câu lệnh khác một cách lặp đi lặp lại.

Câu lệnh while và do-while

Câu lệnh while sẽ thực hiện một khối lệnh trong khi một điều kiện nào đó vẫn còn đúng, cú pháp của câu lệnh while có dạng:

while(<biểu_thức>) {
    <câu_lệnh>
}

Đầu tiên là từ khóa while rồi đến một biểu thức có trả về true hoặc false, tiếp theo là khối lệnh. Nếu biểu thức cho ra kết quả true thì các câu lệnh trong khối lệnh sẽ được thực hiện. Ví dụ:

class WhileDemo {
    public static void main(String[] args) {
        int count = 1;
        while(count < 11) {
            System.out.println("Count to " + count);
            count++;
        }
    }
}

Đoạn code trên sẽ in các số từ 1 đến 10, vòng lặp while kiểm tra biến count, nếu biến count vẫn còn bé hơn 11 thì in dòng chữ ra màn hình và tăng biến count lên 1.

Count to 1
Count to 2
Count to 3
Count to 4
Count to 5
Count to 6
Count to 7
Count to 8
Count to 9
Count to 10

Nếu biểu thức luôn luôn cho kết quả true thì có thể tạo ra một vòng lặp chạy vô tận:

while(true) {
    ...
}

Ngoài câu lệnh while thì còn có một câu lệnh khác là do-while, cú pháp như sau:

do {
    <câu_lệnh>;
} while(<biểu_thức>);

Sự khác nhau giữa while và do-while là câu lệnh trong do-while sẽ được thực hiện rồi biểu thức mới được đánh giá, còn trong while thì biểu thức được đánh giá trước rồi mới thực hiện câu lệnh. Ví dụ:

public class DoWhile {
    public static void main(String[] args) {
        int count = 1;
        do {
            System.out.println("Count is: " + count);
            count++;
        } while(count < 11);
    }
}

Câu lệnh for

Câu lệnh for cho phép chúng ta thực hiện vòng lặp trong một khoảng giá trị nào đó, cú pháp như sau:

for ( <khởi_tạo_biến_lặp> ; <điều_kiện_lặp> ; <tăng_biến_lặp>) {
    <câu_lệnh>;
}

Đầu tiên là từ khóa for, sau đó là câu lệnh khởi tạo biến lặp, câu lệnh này sẽ được thực thi một lần, sau đó vòng lặp sẽ bắt đầu chạy, cứ mỗi lần chạy thì vòng lặp sẽ kiểm tra xem điều kiện lặp có đúng hay không, nếu đúng rồi thì thực hiện các câu lệnh trong khối lệnh rồi chạy câu lệnh tăng biến lặp lên, không thì dừng vòng lặp. Ví dụ:

class ForDemo {
    public static void main(String[] args) {
        for(int i = 1 ; i < 11 ; i++) {
            System.out.println("Count to: " + i);
        }
    }
}

Đoạn code trên sẽ in các số từ 1 đến 10.

Đầu tiên câu lệnh for sẽ khởi tạo biến lặp là i có giá trị là 1, sau đó kiểm tra xem i có bé hơn 11 hay không, nếu có thì in dòng chữ ra, rồi tăng i lên 1 và tiếp tục kiểm tra lại….

Count to 1
Count to 2
Count to 3
Count to 4
Count to 5
Count to 6
Count to 7
Count to 8
Count to 9
Count to 10

Biến lặp khi được khởi tạo chỉ có thể đọc/ghi trong khối lệnh của vòng lặp for. Nếu muốn sử dụng biến thì chúng ta có thể khai báo biến này ở ngoài. Ví dụ:

int i;
for(i = 1 ; i < 11 ; i++) {
    ...
}

Tên biến cũng không nhất thiết phải là i, có thể dùng a, b, c… đều được.

Ba thành phần trong câu lệnh cũng không nhất thiết phải có, chúng ta có thể bỏ cả 3 và tạo ra một vòng lặp vô tận:

for( ; ; ) {
    ...
}

Ngoài ra vòng lặp for còn có một cú pháp dùng để lặp qua các kiểu dữ liệu dạng danh sách như mảng, cú pháp như sau:

for(<kiểu_dữ_liệu> <tên_biến> : <tên_mảng) {
    <câu_lệnh>
}

Ví dụ:

class ForArray { 
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        for(int i : numbers) {
            System.out.println("Count to: " + i);
        }
    }
}

Trong đoạn code trên, thì biến i sẽ lần lượt có giá trị là các phàn tử của mảng numbers.

Count to 1
Count to 2
Count to 3
Count to 4
Count to 5
Count to 6
Count to 7
Count to 8
Count to 9
Count to 10
Được đăng vào ngày 20/04/2017