/ Давтамж /
Компьютерийн програмчлал нь таны амьдралтай адил давтагдах үйлдлээр дүүрэн байдаг. Эдгээр үйлдлийг loop давтамж ашиглан гүйцэтгэдэг. Дарт-д бусад програмчлалын хэлтэй адил while loop болон for loop гэж үндсэн 2 төрлийн давтамж бий.
while давталт нь тухайн Boolean нөхцөл буюу condition үнэн байх үед ĸодын блоĸийг давтсаар байна. while давталтыг дараах байдлаар үүсгэнэ.
while (condition) {
// code for loop
}
while (condition)
Өгөгдсөн нөхцлийг шалгаад үнэн байх юм бол ĸодыг ажиллуулна. Ажиллуулчихаад нөхцөлөө дахин шалгаж үнэн хэвээр байвал ĸодыг дахиад л ажиллуулна. Нөхцөл худал болж байж давтамж зогсоно.
while loop хийхдээ анхаарах хамгийн чухал зүйл бол давтамжийг зогсолтгүй ажиллуулах нөхцөл (condition) өгч болохгүй.
while (true) { }
Дээрх ĸодыг ажиллуулбал infinite loop үүсэх ба ĸомпьютер гацах аюултайг анхаар!
Одоо while loop жишээ авч үзье:
var sum = 1;
while (sum < 10) {
sum += 4;
print(sum);
}
Гурав дахь давталт хийчихээд нөхцөлөө эргээд шалгахад false болсон учир ĸод дахиж ажиллахгүй зогсоно.
while loop-ийн бас нэг хувилбар бол do-while loop юм.
do {
// loop code
}
Энэ нь ижил төрлийн давтамж боловч эхлээд ĸодыг нэг удаа ажиллуулчхаад дараа нь нөхцөлөө шалгадагаараа ялгаатай.
өмнө үзсэн жишээндээр do-while loop хэрэглээд үзье:
var sum = 1;
do {
sum += 4;
print(sum);
} while (sum < 10);
Үргэлж while хэрэглээд явах боломжтой ч заримдаа do-while ашиглах нь илүү оновчтой байх тохиолдол бий. Дараах - ĸодыг харьцуулж үзээрэй.
var sum = (1 + 3 - 2 * 4 + 8);
while (sum < 10) {
sum += (1 + 3 - 2 * 4 + 8);
}
print('while loop sum: $sum');
var sum = 0;
do {
sum += (1 + 3 - 2 * 4 + 8);
} while (sum < 10);
print('do-while loop sum: $sum');
Хоёулангийн хариу ижил гарах боловч сүүлийн тохиолдолд урт ĸодыг та ганцхан л удаа бичиж байгаа болохоор ĸод илүү цэвэрхэн, товчхон болсон байна.
Заримдаа та даввтамжаас эрт гарах хэрэгтэй болдог. Та break ашиглан үүнийг хийж болно. break ажилласан тохиолдолд давтамж нэн даруй зогсож, ĸодын дараагийн үйлдэлрүү үргэлжлүүлнэ.
sum = 1;
while (true) {
sum += 4;
if (sum > 10) {
break;
}
}
print(sum);
Dart-ын бас нэгэн давтамжийн төрөл бол for loop юм.
for (var i = 0; i < 5; i++ ) {
print(i);
}
Дээрх ĸодыг ажиллуулбал:
0
1
2
3
4
гэж хэвлэгдэнэ.
i тоолуур 0-ээс эхлэж нийт 5 удаа ажилласан байна. Яг л i < 5 нөхцөл true байсан үедээ ажиллаж i утгыг нэгээр нэмэгдүүлсэн нь харагдаж байна.
Заримдаа давтамж явж байх хооронд үйлдлийг хийлгүй алгасах тохиолдол гарч болно. Ийм үед continue хэрэглэж болно.
for (var i = 0; i < 5; i++ ) {
if (i = 2) {
continue;
}
print(i);
}
Энгийн үгээр тайлбарлавал: i = 2 байвал алгас гэсэн үг юм.
Хариу нь:
0
1
3
4
болно.