Dart / Loops /

Dart / Loops /

/ Давтамж /

Компьютерийн програмчлал нь таны амьдралтай адил давтагдах үйлдлээр дүүрэн байдаг. Эдгээр үйлдлийг loop давтамж ашиглан гүйцэтгэдэг. Дарт-д бусад програмчлалын хэлтэй адил while loop болон for loop гэж үндсэн 2 төрлийн давтамж бий.

While Loops

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);
}
                    
  • Давталт эхлэхээс өмнө sum = 1 байна. Өгөгдсөн нөхцөл condition = true гэсэн үг.
  • Эхний давталт хийгдэхэд sum = 5 болно. Өгөгдсөн нөхцөл condition = true хэвээр байна.
  • Хоёр дахь давталт хийгдэхэд sum = 9 болно. Өгөгдсөн нөхцөл condition = true хэвээр байсаар л байна.
  • Гурав дахь давталт хийгдэхэд sum = 13 болно. Өгөгдсөн нөхцөл condition = false болж өөрчлөгдөнө.

Гурав дахь давталт хийчихээд нөхцөлөө эргээд шалгахад false болсон учир ĸод дахиж ажиллахгүй зогсоно.

Do while loops

while loop-ийн бас нэг хувилбар бол do-while loop юм.


                        do {
                        // loop code
                        }
                    

Энэ нь ижил төрлийн давтамж боловч эхлээд ĸодыг нэг удаа ажиллуулчхаад дараа нь нөхцөлөө шалгадагаараа ялгаатай.

өмнө үзсэн жишээндээр do-while loop хэрэглээд үзье:


var sum = 1;
do {
sum += 4;
print(sum);
} while (sum < 10);
                    

Comparing While and Do-While Loops / While ба Do-While хоёрыг харьцуулах нь /

Үргэлж 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');
                                                        

Хоёулангийн хариу ижил гарах боловч сүүлийн тохиолдолд урт ĸодыг та ганцхан л удаа бичиж байгаа болохоор ĸод илүү цэвэрхэн, товчхон болсон байна.

Breaking Out of a Loop / Давтамжийг зогсоож гарах /

Заримдаа та даввтамжаас эрт гарах хэрэгтэй болдог. Та break ашиглан үүнийг хийж болно. break ажилласан тохиолдолд давтамж нэн даруй зогсож, ĸодын дараагийн үйлдэлрүү үргэлжлүүлнэ.


                        sum = 1;
                        while (true) {
                        sum += 4;
                        if (sum > 10) {
                        break;
                         }
                        }
                        print(sum);
                                

For Loops

Dart-ын бас нэгэн давтамжийн төрөл бол for loop юм.


                        for (var i = 0; i < 5; i++ ) {
                        print(i);
                        }
                    
  • var i = 0 (initialization): Давтамж хийхээс өмнө давталтын тоог хянахын тулд i хувьсагчийн зарлан анхны утга 0 гэж оногдуулж байна. Хэдэн удаа давтсаныг харуулах тоолуур гэсэн үг.
  • i < 5 (condition): Давтамж ямар нөхцөлд ажиллахыг зааж өгсөн байна. Энэ нөхцөл true үед давтамжийн дотор байгаа ĸод ажиллана гэсэн үг.
  • i++ (action): Давтамжийн ĸодыг ажиллуулсаны дараа хийгддэг үйлдэл заагдсан байна. i++ гэсэн бичиглэл нь i хувьсагчийг 1-ээр нэмэгдүүлж байна.

Дээрх ĸодыг ажиллуулбал:


0
1
2
3
4
                    

гэж хэвлэгдэнэ.

i тоолуур 0-ээс эхлэж нийт 5 удаа ажилласан байна. Яг л i < 5 нөхцөл true байсан үедээ ажиллаж i утгыг нэгээр нэмэгдүүлсэн нь харагдаж байна.

The Continue Keyword

Заримдаа давтамж явж байх хооронд үйлдлийг хийлгүй алгасах тохиолдол гарч болно. Ийм үед continue хэрэглэж болно.


                            for (var i = 0; i < 5; i++ ) {
                                if (i = 2) {
                                continue;
                                }
                                print(i);
                                }
                    

Энгийн үгээр тайлбарлавал: i = 2 байвал алгас гэсэн үг юм.

Хариу нь:


0
1
3
4
                

болно.