Luyện tập Vòng lặp trong Java

Bài viết này mình sẽ chia sẻ với bạn các ví dụ luyện tập sử dụng vòng lặp trong Java, giúp bạn thuần thục và thực sự thoải mái khi sử dụng chúng.

Luyện tập Vòng lặp trong Java

Luyện tập Vòng lặp trong Java

Bạn nên nhớ rằng, Kiến thức cơ bản là một trong những viên gạch quan trọng để xây dựng nên những thứ cao siêu và thâm thuý hơn.

Bất kỳ môn phái hay ngành học nào cũng cần luyện tập những những kiến thức căn thật vững.

Bạn càng thoải mái, càng thành thục những vấn đề cơ bản thì khi đụng đến vấn đề phức tạp sẽ biết cách chia chúng thành vấn đề nhỏ để hiểu từng phần.

Riêng đối với việc học lập trình Java. Nếu bạn không thể học 1 hiểu 10 (như thiên tài) thì hãy học 10 để hiểu 1 thật tốt.

Ok, bây giờ chúng ta bắt đầu nào…

1. Một số vòng lặp cơ bản thường gặp trong Java

Trong Java và phần nhiều mọi ngôn từ lập trình khác, khi nhắc đến vòng lặp thì có ba cái tên tiêu biểu vượt trội nhất, được sử dụng tiếp tục nhất đó là :

  • vòng lập FOR
  • vòng lập WHILE
  • vòng lập DO WHILE

Để hiểu được 3 vòng lặp này trong Java sử dụng như thế nào không khó, chỉ cần bạn rèn luyện đủ nhiều là được .

1.1. Vòng lập FOR

Vòng lặp for được sử dụng khi bạn biết chính xác hoặc cụ thể việc bạn muốn lặp lại bao nhiêu lần một hoặc nhiều đoạn code chứa bên trong.

Cú pháp:


for(){

    / / những lệnh ;

}
 

Trong đó :

  • Biến khởi tạo : là biến đã được khai báo để ghi lại sự khởi đầu của vòng lặp .
  • Biểu thức điều kiện: là một biểu thức kiểm tra trả về giá trị Boolean, vòng lặp được thực thi khi giá trị trả về của biểu thức là True và ngược lại thoát vòng lặp nếu giá trị trả về là False.

  • Tăng / giảm biến : được sử dụng để update giá trị của biến cho lần lặp tiếp theo .

1.2. Vòng lặp WHILE

Vòng lặp while được sử dụng khi bạn không thể xác định được số lần lặp cụ thể của chương trình.

Cú pháp:


while(<điều kiện>) {

    / / những lệnh ;

}
 

Vòng lặp WHILE mở màn với việc kiểm tra điều kiện kèm theo .

  • Khi điều kiện đúng, tức giá trị trả về là True thì các câu lệnh trong thân vòng lặp được thực thi.

Thông thường những câu lệnh trong phần thân sẽ chứa một giá trị update cho biến đang được giải quyết và xử lý cho lần lặp tiếp theo .

  • Khi điều kiện sai, tức kết quả trả về là False, vòng lặp chấm dứt đánh dấu sự kết thúc vòng đời của nó.

1.3. Vòng lặp DO WHILE

Vòng lặp DO WHILE tương tự như vòng lặp WHILE, nhưng kể cả khi điều kiện sai, giá trị trả về là False thì vòng lặp vẫn thực hiện lệnh ít nhất một lần.

Hay chính xác hơn là, DO WHILE kiểm tra điều kiện sau khi thực hiện các câu lệnh.

Cú pháp:


do {

    / / những lệnh ;

} while(<điều kiện>);
 

 
Nhìn cú pháp có thể thấy, điều kiện trong DO WHILE trong Java được kiểm tra sau khi thực hiện các câu lệnh và cập nhật giá trị biến.

  • Nếu điều kiện kèm theo đúng, lần lặp tiếp theo của vòng lặp sẽ khởi đầu .
  • Khi điều kiện kèm theo sai, vòng lặp sẽ chấm hết và lưu lại sự kết thúc vòng đời của nó .

2. Sử dụng vòng lặp trong Java để giải quyết một số thuật toán cơ bản thường gặp

Không nói suông triết lý nữa, tất cả chúng ta sẽ điểm qua 1 số ít ví dụ thường gặp để thấy được cái hay ho của những vòng lặp nào .

Ví dụ vòng lặp trong Java #1

Trường hợp bạn cần in các số tự nhiên từ 1 đến 9 ra màn hình. Chẳng lẽ bạn viết câu lệnh System.out.println(9) tận 9 lần sao.

Ừ thì bạn chăm chỉ, bạn Copy -> Paste 9 lần cũng được. Nhưng nếu không phải là in ra từ 1 – 9 mà là in ra từ 1 – 1000 thì sao?

Bạn có đủ sức Copy -> Paste nữa không?

Trong trường hợp như vậy, người ta sẽ sử dụng vòng lặp, vừa để giảm công sức, vừa để giảm code của chương trình.

Sử dụng vòng lặp FOR:


public class VongLapFor {

    public static void main(String[] args) {

        / / in những số từ 1 đến 1000

        for(int i = 1; i <= 1000; i++) {

            System.out.println(i);

}
}

}
 

Sử dụng vòng lặp WHILE :


public class VongLapWhile {

    public static void main(String[] args) {

        / / in những số từ 1 đến 1000

        int i = 1;

        while(i <= 1000) {

            System.out.println(i);

i + + ;
}
}

}
 

Sử dụng vòng lặp DO WHILE :


public class VongLapDoWhile {

    public static void main(String[] args) {

        int i = 1;

        do {

            System.out.println(i);

i + + ;

        } while (i <= 1000);

}

}
 

Ví dụ vòng lặp trong Java #2

Tính tổng các số tự nhiên từ 1 đến 1000.

Sử dụng vòng lặp FOR:


public class VongLapFor {

    public static void main(String[] args) {

        / / Tổng những số từ 1 đến 1000

        int tong = 0;

        for(int i = 1; i <= 1000; i++) {

tong = tong + i ;
}

        System.out.println(tong);

}

}
 

Sử dụng vòng lặp WHILE :


public class VongLapWhile {

    public static void main(String[] args) {

        / / in những số từ 1 đến 1000

        int i = 1;

        int tong = 0;

        while (i <= 1000) {

tong = tong + i ;
i + + ;
}

        System.out.println(tong);

}

}
 

Sử dụng vòng lặp DO-WHILE :


public class VongLapDoWhile {

    public static void main(String[] args) {

        / / in những số từ 1 đến 1000

        int i = 1;

        int tong = 0;

        do {

tong = tong + i ;
i + + ;

        } while (i <= 1000);

        System.

out

.println(tong);

}

}
 

Bài này nếu không dùng vòng lặp để xử lý thì bạn có cách nào khác hoặc đơn thuần và nhanh hơn để code không ?

Gợi ý!

Công thức tính tổng các số từ 1 đến n là: (n + 1)*(n/2)

Ví dụ vòng lặp trong Java #3

Bây giờ chúng ta thử thao tác với mảng bằng vòng lặp xem nào.

Hãy in tất cả giá trị của mảng cho trước theo thứ tự ngược lại.

Sử dụng vòng lặp FOR:


public class VongLapFor {

    public static void main(String[] args) {

        / / Khai báo một mảng

        String[] niit = {

            ” 1 – Java “,

            ” 2 – Python “,

            ” 3 – PHP “,

            ” 4 – JavaScript “,

            ” 5 – CSS “,

            ” 6 – HTML “,

            ” 7 – Big Data “

} ;

        / / In ngược giá trị của mảng cho trước

        for (int i = niit.length; i > 0 ; i–)

        System.out.println(niit[i-1]);

}

}
 

 
Sử dụng vòng lặp WHILE:


public class VongLapWhile {

    public static void main(String[] args) {

        / / Khai báo một mảng

        String[] niit = {

            ” 1 – Java “,

            ” 2 – Python “,

            ” 3 – PHP “,

            ” 4 – JavaScript “,

            ” 5 – CSS “,

            ” 6 – HTML “,

            ” 7 – Big Data “

} ;

        int i = niit.length – 1;

        / / In ngược giá trị của mảng cho trước

        while (i >= 0) {

            System.out.println(niit[i]);

i — ;
}
}

}
 

 
Sử dụng vòng lặp DO WHILE:


public class VongLapDoWhile {

    public static void main(String[] args) {

        / / Khai báo một mảng

        String[] niit = {

            ” 1 – Java “,

            ” 2 – Python “,

            ” 3 – PHP “,

            ” 4 – JavaScript “,

            ” 5 – CSS “,

            ” 6 – HTML “,

            ” 7 – Big Data “

} ;

        int i = niit.length – 1;

        / / In ngược giá trị của mảng cho trước

        do {

            System.out.println(niit[i]);

i — ;

        } while (i >= 0);

}

}
 

vòng lặp FOR EACH trong Java.

FOR EACH là một kỹ thuật duyệt mảng khác như các vòng lặp trước.

Nhưng thay vì khai báo hay khởi tạo biến lặp vị trí, chúng ta sẽ khai báo một biến chung về kiểu dữ liệu của mảng, sử dụng biến đó duyệt các phần tử các mảng mà không cần lấy vị trí (index) của mỗi phần tử.

Chú ý, vòng lặp FOR EACH không thể thể chỉnh sửa mảng, không thể tìm vị trí phần tử trong mảng và không thể in ngược mảng.

Vì thế, đây là ví dụ sử dụng vòng lặp for each để in mảng theo chiều xuôi nhé.Trong thao tác với mảng, bạn hoàn toàn có thể sử dụngFOR EACH là một kỹ thuật duyệt mảng khác như những vòng lặp trước. Nhưng thay vì khai báo hay khởi tạo biến lặp vị trí, tất cả chúng ta sẽ khai báo một biến chung về kiểu tài liệu của mảng, sử dụng biến đó duyệt những thành phần những mảng mà không cần lấy vị trí ( index ) của mỗi thành phần. Chú ý, vòng lặp FOR EACH không hề thể chỉnh sửa mảng, không hề tìm vị trí thành phần trong mảng và không hề in ngược mảng. Vì thế, đây là ví dụ sử dụng vòng lặp for each để in mảng theo chiều xuôi nhé .


public class VongLapForEach {

    public static void main(String[] args) {

        / / Khai báo một mảng

        String[] niit = {

            ” 1 – Java “,

            ” 2 – Python “,

            ” 3 – PHP “,

            ” 4 – JavaScript “,

            ” 5 – CSS “,

            ” 6 – HTML “,

            ” 7 – Big Data “

} ;

        / / In tổng thể giá trị của mảng cho trước

        for (String i : niit) {

            System.out.println(i);

}
}

}
 

Mặc dù cú pháp và các sử dụng khác nhau nhưng các vòng lặp vẫn cho kết quả như nhau.

Vấn đề là ta nên lựa chọn giải pháp sao cho phù hợp nhất để mang lại hiệu quả tốt nhất nhiệm vụ cần giải quyết.

Chúc mừng bạn đã hiểu rõ hơn về vòng lặp trong Java

Mỗi loại vòng lặp trong Java có điểm mạnh và hạn chế riêng, do đó bạn cần phải hiểu rõ cú pháp, cách dùng và dùng trong trường hợp như thế nào thì chương trình của bạn mới có hiệu suất tốt được.

Kiến thức về vòng lặp là cơ bản cần phải thật vững để học sâu hơn về lập trình Java.

Nếu bạn bị hổng kiến thức về vòng lập, có lẽ con đường tu luyện Java của bạn sẽ gian nan vô cùng.

> Nếu bạn thấy tự học Java quá khó khăn. Hãy tham gia ngay Khóa học Java (Fullstack) tại NIIT - ICT Hà Nội để lĩnh hội được tất cả những tinh túy của Java bạn nhé.

Hi vọng qua bài chia sẻ này bạn có thêm kiến thức về vòng lặp trong Java. Nếu cảm thấy chưa hiểu rõ, hãy làm lại các ví dụ trên vài lần bạn nhé.

> Đọc thêm: Printf trong JavaVòng lặp đóng vai trò cực kỳ quan trọng trong lập trình, không riêng gì riêng gì lập trình Java đâu. Mỗi loạicó điểm mạnh và hạn chế riêng, do đó bạn cần phải hiểu rõ cú pháp, cách dùng và dùng trong trường hợp như thế nào thì chương trình của bạn mới có hiệu suất tốt được. Kiến thức về vòng lặp là cơ bản cần phải thật vững để học sâu hơn về lập trình Java. Nếu bạn bị hổng kiến thức và kỹ năng về vòng lập, có lẽ rằng con đường tu luyện Java của bạn sẽ gian truân vô cùng. Hi vọng qua bài san sẻ này bạn có thêm kiến thức và kỹ năng về. Nếu cảm thấy chưa hiểu rõ, hãy làm lại những ví dụ trên vài lần bạn nhé .

> Tài liệu tìm hiểu thêm :

HỌC VIỆN ĐÀO TẠO CNTT NIIT – ICT HÀ NỘI

Dạy học Lập trình chất lượng cao ( Since 2002 ). Học làm Lập trình viên. Hành động ngay !

Đc : Tầng 3, 25T2, N05, Nguyễn Thị Thập, CG cầu giấy, TP. Hà Nội

SĐT : 02435574074 – 0914939543 – 0353655150

E-Mail : [email protected]

Fanpage: https://facebook.com/NIIT.ICT/

# niit # niithanoi # niiticthanoi # hoclaptrinh # khoahoclaptrinh # hoclaptrinhjava # hoclaptrinhphp # java # php # python