
5.0 Pętle
Tutaj też ,specjalnie nie powinna zaskoczyć nas składnia ,gdyż jest zbliżona jak w języku Java .
- Pętla for
- Pętla for each
- Pętla while
- Pętla do While
5.1 Pętla for
Składnia jest następującafor([start];[warunek];[krok]){}
void main() { //Ta pętla wykona się 10 razy for(int a=0;a‹a++){ print(a); } //Ta pętla zrobi dokładnie to samo for(var a=0;a‹10;a++){ print(a); } }
5.2 Pętla for each
W języku Dart mamy możliwość przechodzenia przez elementy naszej na przykład listy nie znając jej rozmiaru .Pętla sama inteligentnie zakończy się gdy napotka ostatni element . Podobnie zresztą jak w języku Java .for([Nasza Obiekt] in [Nazwa obiektu])
//Tworzymy elementy dopisując do naszej listy List‹String› list = new List‹String›(); list.add('one'); list.add('two'); list.add('three'); //Wyświetlamy naszą listę for(String a in list){ print(a); }Wynik
one two three
5.3 Pętla While i do While
Dobrze nam znane bo takie same . Trzeba pamiętać ,że pętla do While wykona się przynajmniej raz .while([warunek])
lub do ... while([warunek])
void main() { int a=2; //Ta pętla się nie wykona ponieważ a=2 a nie 1 while(a==1){ print(a); } //Natomiast ta wyświetli wpierw 2 a później zakończy swoje działanie do{ print(a); } while(a==1); }
5.4 Continue i break
Continue
Klauzula continue sprawi że pętla się nie przerwie lecz będzie się kontynuwać .void main() { //Pętla kontynuje wykonywanie pętli ,lecz pomija zawartą ponieżej treść for(int a=0;a‹a++){ //To zostanie pominięte if(a==8){ continue; //To się nigdy nie wykona print(a); }else{ print(a); continue; //To się nigdy nie wykona print(a); } } }Wynik
0 1 2 3 4 5 6 7 9Jak widzisz 8 została pominięta.
Break
Klauzula Break przerwie działanie pętli
void main() { for(int a=0;a‹a++){ if(a==2){ //Przerwanie break; }else{ print(a); } } }Wynik
0 1Jak widzisz wykonały się 2 przypadki tylko ponieważ gdy program napotkał 2 to przerwał działanie pętli.
Dodawanie tytułów do pętli
void main() { //Tytuł pętli "label" nazwa1:for(int a=0;a‹a++){ nazwa2:for(int b=0;b‹10;b++){ if(b==4){ print("a=$a b=$b"); //Przerwanei pętli o tytule "nazwa1" break nazwa1; } } } }wynik
a=0 b=4