Циклы в Dart
1. Что такое цикл?
В языках программирования циклы позволяют многократно выполнять блок кода.
Язык Dart предоставляет следующие типы циклов:
- for
- for..in
- while
- do..while
Инструкции (statement) break и continue могут появляться внутри цикла:
break
При обнаружении инструкции break программа немедленно завершит цикл.
continue
При обнаружении инструкции continue программа пропустит строки ниже инструкции continue и выполнит следующую итерацию (если условие цикла все еще верно).
2. Цикл for
Синтаксис цикла for:
for (initialValues; condition; updateValues) {
// Statements to be executed repeatedly
}
- InitialValues: Инициализируйте значения для связанных переменных в цикле.
- condition: Условие для выполнения блока.
- updateValues: Обновите новые значения переменных.
Например:
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
Например: Две переменные участвуют в условии цикла 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. Цикл for..in
Цикл for..in используется для перебора элементов объекта t Iterable.
- Iterable
- List
- Set
В языке программирования Dart, List является потомком of Iterable, который обладает той же функцией, что и массив других языков программирования.
Например: Используйте for..in цикл для перебора элементов of 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
Например: Используйте for..in цикл для перебора элементов объекта 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. Цикл while
Синтаксис цикла while:
while (condition) {
// Do something here..
}
Например:
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. Цикл do..while
Цикл do..while используется для многократного выполнения сегмента программы. Особенностью do..while является то, что блок кода всегда выполняется хотя бы один раз. После каждой итерации (iteration), программа снова проверяет условие, если условие по-прежнему верно, будет выполнена следующая итерация.
Синтаксис цикла do..while:
do {
// Do something
}
while(condition);
Например:
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. Инструкция break в цикле
break - это инструкция, которая может появляться в блоке цикла. Это инструкция для безусловного завершения цикла.
Например:
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. Инструкция continue в цикле
continue - это инструкция, которая может появляться в цикле. При обнаружении инструкции continue программа пропустит строки ниже инструкции continue и начнет новую итерацию (если условие все еще выполняется).
Например:
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. Помеченные Loops
Dart позволяет вам поставить метку (Label) для цикла. Это способ назвать цикл, и он удобен при использовании нескольких вложенных циклов в программе.
- Вы можете использовать инструкцию "break labelX", чтобы break цикл с надписью labelX.
- Вы можете использовать инструкцию "continue labelX", чтобы continue цикл с меткой labelX.
Синтаксис для объявления цикла с метками.
// for loop with Label.
label1: for( ... ) {
}
// while loop with Label.
label2: while ( ... ) {
}
// do-while loop with Label.
label3: do {
} while ( ... );
Например: Используйте помеченные циклы и инструкцию 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!
Например: Используйте помеченные циклы и инструкцию 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
Pуководства Dart
- Тип данных Boolean в Dart
- Функции в Dart
- Замыкания (Closure) в Dart
- Методы в Dart
- Свойства в Dart
- Оператор точка-точка (..) в Dart
- Программирование Dart с помощью онлайн-инструмента DartPad
- Установите Dart SDK в Windows
- Установите Visual Studio Code в Windows
- Установите Dart Code Extension для Visual Studio Code
- Установите Dart Plugin для Android Studio
- Запустите свой первый пример Dart в Visual Studio Code
- Запустите свой первый пример Dart в Android Studio
- Dart JSON với thư viện dart:convert
- Руководство Dart List
- Переменные в Dart
- Руководство Dart Map
- Циклы в Dart
Show More