Một lần Mark Zuckerberg lưu ý rằng máy tính thực sự tốt trong việc lặp lại các lệnh. Nó không đơn giản đối với con người, chúng ta lặp đi lặp lại cùng một việc nhiều lần đến phát chán, nhưng một chiếc máy tính có thể làm hàng triệu, hàng tỷ lần mà không bao giờ chán. Nếu bạn cố gắng gửi lời chúc đến tất cả người dùng Facebook, sẽ không có con người nào có đủ thời gian để làm điều đó. Tuy nhiên, bạn có thể tạo một máy tính để giải quyết nhiệm vụ này bằng cách viết một vài dòng mã. Đây là cách vòng lặp hoạt động. Họ để chúng tôi không lặp lại những hành động thường ngày giống nhau. Vòng lặp phổ biến nhất trong Java được gọi là vòng lặp định nghĩa hoặc vòng lặp for.
Làm cách nào để viết một vòng lặp for trong Java? Đối với vòng lặp nói chung
Vòng lặp for thực thi một số câu lệnh trong một số lần nhất định. Ví dụ: viết năm mươi lần “Tôi không được như vậy, ho-ho, ho” hoặc gửi lời mời tới tất cả bạn bè của bạn là những nhiệm vụ điển hình cho loại vòng lặp này. Cú pháp của phiên bản phổ biến nhất của vòng lặp for:for ([counter initialization]; [checking conditions]; [changing of the counter])
{
// statements
}
Biểu thức khởi tạo được thực thi một lần, sau đó điều kiện được đánh giá, đây phải là biểu thức boolean.
- Khi vòng lặp bắt đầu thực thi khởi tạo.
- Khi các điều kiện đánh giá là sai, vòng lặp của chúng tôi sẽ dừng hoạt động.
Cách sử dụng vòng lặp for trong Java. Ví dụ đơn giản.
Đây là một ví dụ cụ thể về vòng lặp Java for. Hãy viết mười lần "Xin chào!" Chuỗi mỗi lần nó sẽ là từ dòng mới với một số dòng này. Chúng ta sẽ nhận được đầu ra tiếp theo:- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
- Xin chào!
public class ForExample {
public static void main(String[] args) {
for (int i = 0; i < 10; i++) {
System.out.println(i + 1 + ". Hello!");
}
}
}
Làm thế nào nó hoạt động?
Bước 1. Bộ đếm i = 0. Vòng lặp kiểm tra điều kiện của chúng ta, i << 10, do đó, các câu lệnh vòng lặp được thực thi. Nó in cụm từ "1. Xin chào!". 1 là xâu i + 1 (vì ta tính từ số 0 mà dòng đầu tiên vẫn là dòng đầu tiên). Bộ đếm i được tăng lên. Bây giờ, i = 1. Bước 2. Bộ đếm i = 1. i < 10, vì vậy chúng ta có cụm từ "2. Xin chào!" và i + 1 = 2. … Bước 10. Bộ đếm i = 9, chúng ta có "10. Xin chào!" và i tăng lên 10. Bước 11. Bộ đếm i = 10. i < 10 ? Không, nó là sai. Do đó, vòng lặp kết thúc.Vòng lặp While và vòng lặp for: sự khác biệt và tương đồng
Trong Java vòng lặp không xác định hoặc vòng lặp while được thực thi liên tục nếu điều kiện boolean trở thành sự thật. Cú pháp của vòng lặp while:while (boolean condition)
{
loop statements...
}
Thông thường, bạn có thể chọn vòng lặp nào bạn muốn sử dụng. Đôi khi chúng rất gần nhau và bạn có thể sử dụng cả hai. Ví dụ: đây là mã cho cùng một tác vụ (viết mười lần "Xin chào!" với một số dòng) được viết bằng vòng lặp while:
public class ForAndForEach {
public static void main(String[] args) {
int j = 0; // we use the counter this way
while (j < 10) {
System.out.println(j + 1 + ". Hello!");
j++;
}
}
}
Tuy nhiên, các lập trình viên chuyên nghiệp không thực sự thích vòng lặp while, và bất cứ khi nào có thể, hãy thử sử dụng vòng lặp for.
VÌ | TRONG KHI |
---|---|
Chúng tôi sử dụng vòng lặp for nếu chúng tôi đã biết số lần lặp. |
Chúng ta sử dụng vòng lặp while nếu không biết chính xác số lần lặp. |
Khởi tạo, kiểm tra điều kiện và thay đổi bộ đếm đã được thực hiện theo cú pháp của một vòng lặp |
Khởi tạo và kiểm tra điều kiện bên trong vòng lặp. Ngoài ra, bạn có thể sử dụng bộ đếm trong các câu lệnh. |
Vòng lặp vô hạn cho:
|
Vòng lặp vô hạn trong khi:
|
Cách thoát khỏi vòng lặp for trong java
Thông thường vòng lặp for đang chạy như một dòng chảy và cách tự nhiên để thoát khỏi vòng lặp là khi một điều kiện nhận giá trị sai. Tuy nhiên, có hai câu lệnh điều khiển cho phép bạn thoát khỏi vòng lặp trước khi bạn nhận được giá trị sai của một điều kiện — ngắt và tiếp tục.- break cho phép thoát khỏi thân vòng lặp hiện tại như thể điều kiện vòng lặp đã được đánh giá là sai.
- continue làm cho vòng lặp chuyển sang bước tiếp theo (lặp lại bộ đếm) mà không cần thực hiện các câu lệnh.
public class ForBreakExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
// how to break out of a for loop, java: check if we have any "Stranger" in // our array
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
break;
}
System.out.println("Hello," + names[i]);
}
}
}
Kết quả thực hiện chương trình của chúng ta là:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Nhìn thấy? Chúng tôi chạy khỏi vòng lặp trước khi chào Lucas và Will. Bây giờ, hãy sử dụng tiếp tục, chỉ để bỏ qua "Người lạ" nhưng vẫn ở trong vòng lặp để nói xin chào với những người bạn khác.
public class ForContinueExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
for (int i = 0; i < names.length; i++) {
if (names[i].equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("Hello," + names[i]);
}
}
}
Kết quả là:
Hello,Mike
Hello,Dustin
I don't chat with strangers
Hello,Lucas
Hello,Will
Xuất sắc! Chúng tôi chào tất cả bạn bè, nhưng không nói chuyện với người lạ.
Phiên bản nâng cao của vòng lặp for hoặc for-each
For-each là một loại vòng lặp for được sử dụng khi bạn cần xử lý tất cả các phần tử của một mảng hoặc tập hợp. Trên thực tế, cụm từ for-each không được sử dụng trong chu trình này. Cú pháp như sau:for (type itVar: array)
{
Block of operators;
}
Trong đó type là kiểu của biến lặp (giống kiểu dữ liệu của mảng), ItVar là tên của nó, array là mảng hoặc có thể có cấu trúc dữ liệu khác, ArrayList chẳng hạn. Như bạn có thể thấy, không có bộ đếm, biến lặp lặp lại trên các phần tử của một mảng hoặc tập hợp chứ không phải các giá trị chỉ mục. Khi một vòng lặp như vậy được thực thi, biến lặp được gán tuần tự giá trị của từng phần tử của mảng hoặc tập hợp, sau đó khối câu lệnh (hoặc toán tử) đã chỉ định được thực thi. Chú ý: vòng lặp for-each có thể được áp dụng cho mảng và bất kỳ lớp nào triển khai giao diện java.lang.Iterable. Hãy giải quyết vấn đề tương tự với lời chào bạn bè, phớt lờ người lạ ("Stranger") nhưng lần này sử dụng vòng lặp for-each.
public class ForEachExample {
public static void main(String[] args) {
String[] names = {"Mike", "Dustin", "Stranger", "Lucas", "Will"};
// for each loop, Java code
for (String name : names) {
if (name.equals("Stranger")) {
System.out.println("I don't chat with strangers");
continue;
}
System.out.println("hello, " + name);
}
}
}
Để củng cố những gì bạn đã học, chúng tôi khuyên bạn nên xem một video bài học từ Khóa học Java của chúng tôi