Vòng lặp trong Dart
1. Vòng lặp là gì?
Trong các ngôn ngữ lập trình, vòng lặp cho phép một khối mã được thực thi lặp đi lặp lại nhiều lần.
Ngôn ngữ Dart cung cấp các loại vòng lặp sau:
- for
- for..in
- while
- do..while
Các câu lệnh (statement) break và continue có thể xuất hiện bên trong vòng lặp:
break
Khi bắt gặp lệnh break chương trình sẽ kết thúc vòng lặp ngay lập tức.
continue
Khi bắt gặp lệnh continue chương trình sẽ bỏ qua các dòng lệnh phía dưới của continue và thực thi bước lặp tiếp theo (Nếu điều kiện của vòng lặp vẫn đúng).
2. Vòng lặp for
Cú pháp của vòng lặp for:
for (initialValues; condition; updateValues) {
// Statements to be executed repeatedly
}
- InitialValues: Khởi tạo giá trị cho các biến liên quan trong vòng lặp.
- condition: Điều kiện để thực hiện khối lệnh.
- updateValues: Cập nhập giá trị mới cho các biến.
Ví dụ:
loop_for_ex1.dart
void main() {
print('For loop example');
for (var i = 0; i < 10; i = i + 3) {
print('i= $i');
}
}
Output:
For loop example
i= 0
i= 3
i= 6
i= 9
Ví dụ: 2 biến tham gia vào điều kiện của một vòng lặp for:
loop_for_ex2.dart
void main() {
print('For loop example');
for (var i = 0, j = 0; i + j < 10; i = i + 1, j = j + 2) {
print('i = $i, j = $j');
}
}
Output:
For loop example
i = 0, j = 0
i = 1, j = 2
i = 2, j = 4
i = 3, j = 6
3. Vòng lặp for..in
Vòng lặp for..in được sử dụng để lặp trên các phần tử của một Iterable.
- Iterable
- List
- Set
Trong ngôn ngữ lập trình Dart, List là một lớp hậu duệ của Iterable, nó có tính năng tương tự như một mảng của các ngôn ngữ lập trình khác.
Ví dụ: Sử dụng vòng lặp for..in để lặp trên các phần tử của một List:
loop_for_in_list_ex1.dart
void main() {
// Create a List:
var names = ['Tom', 'Jerry', 'Donald'];
for (var name in names) {
print('name: $name');
}
}
Output:
name: Tom
name: Jerry
name: Donald
Ví dụ: Sử dụng vòng lặp for..in để lặp trên các phần tử của một đối tượng Set.
loop_for_in_set_ex1.dart
void main() {
// Create a Map object:
// (key, value) <--> (Emloyee Number, Salary).
var salaryMap = {'E01': 1200,
'E02': 1500,
'E03': 900};
// The Set object.
var keySet = salaryMap.keys;
for (var key in keySet) {
print('Employee Number: $key, salary: ${salaryMap[key]}');
}
}
Output:
Employee Number: E01, salary: 1200
Employee Number: E02, salary: 1500
Employee Number: E03, salary: 900
- Map
- Set
4. Vòng lặp while
Cú pháp vòng lặp while:
while (condition) {
// Do something here..
}
Ví dụ:
loop_while_ex1.dart
void main() {
print('While loop example');
var x = 2;
while (x < 10) {
print('Value of x = $x');
x = x + 3;
}
print('Done!');
}
Output:
While loop example
Value of x = 2
Value of x = 5
Value of x = 8
Done!
5. Vòng lặp do..while
Vòng lặp do..while được sử dụng để thực thi một đoạn chương trình nhiều lần. Đặc điểm của do..while là khối lệnh luôn được thực thi ít nhất một lần. Sau mỗi bước lặp (iteration), chương trình lại kiểm tra lại điều kiện, nếu điều kiện vẫn còn đúng bước lặp tiếp theo sẽ được thực thi.
Cú pháp vòng lặp do..while:
do {
// Do something
}
while(condition);
Ví dụ:
loop_do_while_ex1.dart
void main() {
var value = 3;
do {
print('Value = $value');
value = value + 3;
} while (value < 10);
}
Output:
Value = 3
Value = 6
Value = 9
6. Lệnh break trong vòng lặp
break là một lệnh có thể xuất hiện trong khối lệnh của một vòng lặp. Đây là lệnh kết thúc vòng lặp vô điều kiện.
Ví dụ:
loop_break_ex1.dart
void main() {
print('Break example');
var x = 2;
while (x < 15) {
print('----------------------');
print('x = $x');
// If y = 5 then exit the loop.
if (x == 5) {
break;
}
// Increase value of x by 1
x = x + 1;
print('x after + 1 = $x');
}
print('Done!');
}
Output:
Break example
----------------------
x = 2
x after + 1 = 3
----------------------
x = 3
x after + 1 = 4
----------------------
x = 4
x after + 1 = 5
----------------------
x = 5
Done!
7. Lệnh continue trong vòng lặp
continue là một lệnh có thể xuất hiện trong một vòng lặp. Khi bắt gặp lệnh continue chương trình sẽ bỏ qua các dòng lệnh phía dưới của continuevà bắt đầu một bước lặp mới (Nếu điều kiện vẫn đúng).
Ví dụ:
loop_continue_ex1.dart
void main() {
print('Continue example');
var x = 2;
while (x < 7) {
print('----------------------');
print('x = $x');
if (x % 2 == 0) {
x = x + 1;
continue;
} else {
x = x + 1;
print('x after + 1 = $x');
}
}
print('Done!');
}
Output:
Continue example
----------------------
x = 2
----------------------
x = 3
x after + 1 = 4
----------------------
x = 4
----------------------
x = 5
x after + 1 = 6
----------------------
x = 6
Done!
8. Vòng lặp được dán nhãn
Dart cho phép bạn dán một nhãn (Label) cho một vòng lặp. Đây là cách để đặt tên cho một vòng lặp và có ích khi bạn sử dụng nhiều vòng lặp lồng nhau trong một chương trình.
- Bạn có thể sử dụng câu lệnh "break labelX" để break vòng lặp được dán nhãn labelX.
- Bạn có thể sử dụng câu lệnh "continue labelX" để continue vòng lặp được dán nhãn labelX.
Cú pháp khai báo một vòng lặp với nhãn.
// for loop with Label.
label1: for( ... ) {
}
// while loop with Label.
label2: while ( ... ) {
}
// do-while loop with Label.
label3: do {
} while ( ... );
Ví dụ: Sử dụng các vòng lặp được dán nhãn và lệnh break.
loop_break_labelled_ex1.dart
void main() {
print('Labelled Loop Break example');
var i = 0;
label1:
while (i < 5) {
print('----------------------');
print('i = $i');
i++;
label2:
for (var j = 0; j < 3; j++) {
print(' --> $j');
if (j > 0) {
// Exit the loop with label1.
break label1;
}
}
}
print('Done!');
}
Output:
Labelled Loop Break example
----------------------
i = 0
--> 0
--> 1
Done!
Ví dụ: Sử dụng các vòng lặp được dán nhãn và lệnh continue.
loop_continue_labelled_ex1.dart
void main() {
var i = 0;
label1:
while (i < 5) {
print('outer i= $i');
i++;
label2:
for (var j = 0; j < 3; j++) {
if (j > 0) {
continue label2;
}
if (i > 1) {
continue label1;
}
print('inner i= $i, j= $j');
}
}
}
Output:
outer i= 0
inner i= 1, j= 0
outer i= 1
outer i= 2
outer i= 3
outer i= 4
Các hướng dẫn lập trình Dart
- Kiểu dữ liệu Boolean trong Dart
- Hướng dẫn và ví dụ hàm trong Dart
- Hướng dẫn và ví dụ Dart Closures
- Interface trong Dart
- Hướng dẫn và ví dụ phương thức trong Dart
- Constructor trong Dart
- Property trong Dart
- Toán tử chấm chấm (..) trong Dart
- Hướng dẫn và ví dụ Dart Generics
- Lập trình Dart với công cụ trực tuyến DartPad
- Cài đặt Dart SDK trên Windows
- Cài đặt Visual Studio Code trên Windows
- Cài đặt Dart Code Extension cho Visual Studio Code
- Cài đặt Dart Plugin cho Android Studio
- Chạy ví dụ Dart đầu tiên của bạn trong Visual Studio Code
- Chạy ví dụ Dart đầu tiên của bạn trong Android Studio
- Dart JSON với thư viện dart:convert
- Hướng dẫn và ví dụ Dart List
- Biến (Variable) trong ngôn ngữ Dart
- Hướng dẫn và ví dụ Dart Map
- Vòng lặp trong Dart
- Xử lý Dart JSON với gói dart_json_mapper
- Trình chuyển đổi mã nguồn (Transpiler) là gì?
- Phân tích XML trong Dart
- Hướng dẫn và ví dụ Dart http
- Hướng dẫn và ví dụ Dart Future
- Các phương thức mở rộng (Extension) trong Dart
- Mixins trong Dart
- Bài thực hành Dart phân tích JSON với gói dart:convert
- Bài thực hành Dart http CRUD
- Từ khoá part và part of trong Dart
- Hướng dẫn và ví dụ Dart Dio
Show More