Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Programi
  • Poboljšana petlja za Java. Java petlje: While i Do-While

Poboljšana petlja za Java. Java petlje: While i Do-While

Jeste li se ikada zapitali zašto programi uopće postoje? Ako pojednostavimo i generaliziramo odgovor na ovo pitanje, ispada da su programi potrebni za automatizaciju tijeka rada, povećanje brzine obavljenog posla, oslobađanje osobe od tisuća monotonih radnji i tako dalje. Usredotočimo se na ponavljanje radnji jedne za drugom, ili, jednostavnije rečeno, ciklusa.

Petlja je uzastopno izvođenje ponavljajućih radnji na temelju zadanog preduvjeta. Na primjer, trebate preurediti sto kutija iz jednog kuta u drugi. Ako to nekako zapišete u jeziku Java (nažalost, Java ne može preurediti okvire umjesto vas), onda ćete dobiti stotinu redaka:

1. uzeti kutiju broj 1 i staviti je u drugi kut;
2. uzeti kutiju broj 2 i staviti je u drugi kut;
3. uzeti kutiju broj 3 i staviti je u drugi kut;

100. uzmite kutiju br. 100 i stavite je u drugi kut;

Stotinu redaka koda je već puno, ali ima tisuću, dvije, tri i tako dalje. U te svrhe, naime, da bi se pojednostavilo snimanje radnji koje se ponavljaju, koriste se ciklusi.

Postoje tri izjave koje predstavljaju petlje u jeziku Java - while, do / white i for. Svaki od operatora je neophodan u svojoj situaciji, ali se i dalje najčešće koristi operator for. Razmotrimo svaki od operatora redom.

Dok izjava

Sintaksa za iskaz while je sljedeća:

Dok (uvjet) (// radnje)

Događa se i ispunjenje određenog preduvjeta, ali za razliku od if/els operatora, ova konstrukcija je izgrađena na petljama za provjeru uvjeta. Kada program dođe do naredbe while, ako je predloženi uvjet istinit, izvršavaju se sve akcije u bloku vitičastih zagrada (...). Nakon dovršetka ovih radnji, program ponovno vrši provjeru uvjeta nakon iskaza while, a ako je uvjet ponovno istinit, radnje u bloku se ponavljaju. Akcije u bloku se izvode sve dok uvjet ne postane lažan i tek tada izlazi iz petlje while.
Za izlazak iz petlji najčešće se koriste takozvani brojači. Razmotrimo mali primjer:

Int i = 0; dok ja< 10) { // действия i++; }

Prvo se varijabli i dodjeljuje vrijednost 0, zatim se provjerava uvjet i0)

(// radnje i--;)

Isti postupci, ali u suprotnom smjeru. Dodatno, u while petlji (i zapravo drugim petljama) moguće je koristiti booleove varijable koje sadrže lažne ili istinite vrijednosti. U tom se slučaju provjerava određeni preduvjet.

Boolean i = istina; dok (i) (// radnje)

Varijabla i je istinita, dodijeljena joj je vrijednost true, tako da se while petlja izvršava sve dok se varijabli i ne dodijeli vrijednost false. Stoga morate voditi računa o izlasku iz takve petlje, inače će se while petlja izvoditi neograničeno i takve petlje se nazivaju beskonačne petlje.

Na kraju, želio bih vam skrenuti pozornost na operator jednakosti ==. Ako napišete petlju ovako:

Int i = 0 dok (i == 5) (// akcije i ++;)

To će se pokazati kao potpuno izvodljiva petlja, ali ako pogriješite ili iz navike koristite klasičnu verziju operatora jednaku =, koji se koristi u matematici, tada ćete imati problem u obliku beskonačne petlje.

Int i = 0 dok (i = 5) (// akcije i ++;)

U preduvjetu je varijabli i dodijeljena vrijednost 5, ali ta radnja nije zabranjena i što na kraju dobivamo? Izvršenje ovog bloka petlje će započeti na čijem će se kraju vrijednost i povećati za jedan, ali u preduvjetu nakon iskaza while varijabli i će se ponovno dodijeliti vrijednost pet i petlja će nastaviti svoj rad neodređeno. Ovo je primjer jednostavne beskonačne petlje i, kao posljedica toga, klasične pogreške koja se vrlo često događa kod programera početnika.

Do / while petlja

Dok petlja koju smo upravo razmotrili, pod određenim uvjetima, možda neće raditi. Na primjer, ako je uvjet u početku netočan, tada se petlja nikada neće izvršiti. Program će, nakon što dođe do retka koda s iskazom while, provjeriti uvjet i ako je netačan, zanemarit će cijelu petlju i prijeći na kod koji odmah slijedi nakon petlje while. Ali ponekad postaje potrebno pokrenuti petlju barem jednom. U ove svrhe, Java ima do / while petlju. Do / while petlja je napisana i kreirana na sljedeći način:

Učini (// radnje) dok (uvjet)

Između izraza do i while postoji tijelo petlje, koje će se izvršavati sve dok postuvjet koji slijedi nakon naredbe while ne bude lažan. Tijelo petlje će se izvršiti najmanje jednom, nakon čega će se provjeriti uvjet. Do / while petlja se ne koristi često, ali ponekad se pokaže da je neophodna.

Za petlju

Ovo je najčešća petlja u programiranju. Petlja for temelji se na manipulaciji brojačem. Značenje ove petlje slično je petljama while i do / while o kojima smo gore raspravljali. Provjerite kako izgleda sintaksa za petlju for:

Za (int i = 0; i< 10; i++) { // действие }

Nakon ključne riječi for slijedi uvjet za izvođenje petlje. Samo stanje kombinira tri stupnja. Prvo se inicijalizira brojač i = 0, a zatim se provjerava uvjet i< 10 и в конце увеличение переменной i на единицу.

Petlja for radi na sljedeći način. Kada program dođe do petlje, tada se inicijalizira brojač i = 0 i provjerava se uvjet i< 10. Далее программа переходит в тело цикла. По окончанию всех действий в цикле for, происходит обращение к третьему этапу цикла: i++, увеличивая счетчик на единицу. После чего сразу же происходит переход ко второму этапу – проверке переменной i < 10 и повторный выход в тело цикла. Весь цикл продолжается до тех пор, пока условие i < 10 не станет ложным. Цикл for используется постоянно при инициализации массива данных, где без него очень сложно, а порой и не возможно обойтись. Так же как и в цикле while возможно использование оператора декремента, например.

Od JDK 5, postoje dva oblika for petlje u Javi. Prvi je tradicionalni oblik koji se koristi od izvorne verzije Jave. Drugi je novi obrazac "za-svakog". Pokriti ćemo obje vrste for petlji, počevši od tradicionalnog oblika.

Opći oblik tradicionalnog operatora za kako slijedi:

Ako će se u petlji ponoviti samo jedan izraz, vitičaste zagrade se mogu izostaviti.

Ciklus za djeluje na sljedeći način. Prvi put kada se petlja pokrene, program se izvršava inicijalizacija dio ciklusa. Općenito, to je izraz koji postavlja vrijednost kontrolne varijable petlje koja djeluje kao kontrolni brojač petlje. Važno je razumjeti da izraz inicijalizacija radi samo jednom... Zatim program izračunava stanje koji bi trebao biti boolean izraz. Tipično, izraz Uvjeti uspoređuje vrijednost manipulirane varijable s ciljnom vrijednošću. Ako je ova vrijednost istinita, program se izvršava tijelo ciklus. Ako je lažna, petlja se prekida.. Zatim se program izvršava tijelo ciklus i tek nakon toga dio ponavljanje ciklus. Ponavljanje obično je to izraz koji povećava ili smanjuje vrijednost manipulirane varijable. Zatim program ponavlja ciklus, sa svakim prolazom najprije izračunava uvjetovano izražavanje, zatim činjenje tijelo petlju i izvršavanje izraza ponavljanja ... Postupak se ponavlja do vrijednosti izraza Uvjeti neće postati lažna.

Budući da većina petlji primjenjuje svoje varijable samo unutar petlje, petlja za dopušta izraz inicijalizacija bila je potpuna deklaracija varijable. Dakle, varijabla je ograničena na tijelo petlje i nevidljiva je izvana..

Evo nekoliko primjera koji će pojasniti sve gore navedeno:

U ovom primjeru, varijabla i je deklariran izvan petlje (redak 7), pa je dostupan i nakon što završi (redak 12).

Iz izlaza izvođenja ovog programa može se vidjeti da je izraz ponavljanja ciklus, odnosno povećanje prefiksa ( ++ i) varijabla i se izvršava nakon izvršenja tijela petlje, odnosno nakon izvršenja reda 10, koji ispisuje pozdrav.

Ovu je točku vrlo važno razumjeti kako biste ispravno razumjeli rad ciklusa. za.

Pogledajmo sada izlaz ovog programa sa i bez argumenata naredbenog retka:

Kao što možete vidjeti iz izlaza ovog programa, povećanje varijable i javlja se nakon posljednje naredbe u petlji koja ispisuje pozdrav (redak 10).

Sada deklarirajmo varijablu unutar petlje (naredba for):

Kao što vidite, Eclipse nam je odmah ukazao na grešku da varijabla j deklarirano u retku 15 nije vidljivo izvan petlje jer se njegov opseg ili opseg proteže samo na tijelo petlje u kojoj je deklariran.

Da bi program funkcionirao, morate komentirati redak 19.

Izlaz ovog koda je isti kao i izlaz koda koji smo upravo vidjeli, osim što je prikazano “Hello” umjesto “Hello”. Pa, i činjenica da nakon petlje nije moguće prikazati vrijednost varijable j.

Prilikom deklariranja varijable unutar petlje za potrebno je zapamtiti sljedeću važnu okolnost: područje i vrijeme postojanja ove varijable potpuno se podudaraju s područjem i vremenom postojanja operatora za .

Sintaksa petlje za nije ograničeno na petlje s jednom varijablom. Kao u izrazu inicijalizacija i u izrazu ponavljanja može se koristiti zarez odvojiti više izraza inicijalizacija i ponavljanja .

Na primjer:

U ovom primjeru u inicijalizacija dio petlje postavljamo početne vrijednosti obje kontrolne varijable a i b... Oba operatora odvojena zarezom u iterativno dijelovi se izvode sa svakim ponavljanjem ciklusa.

Ovaj kod generira sljedeći izlaz:

Ciklus za podržava nekoliko okusa koji povećavaju njegove mogućnosti i povećavaju njegovu primjenjivost. Fleksibilnost ovog ciklusa je zbog činjenice da postoje tri dijela: inicijalizacija , uvjeti provjere i iterativno nije potrebno koristiti samo za predviđenu namjenu. Zapravo, svaki od odjeljaka operatora za može se koristiti u bilo koju svrhu... Na primjer:

Primjer je, naravno, pomalo zagonetan, ali u biti je jednostavan. Prvi dio izraza inicijalizira varijablu b, drugi to provjerava, a treći ispisuje poruku na konzolu.

U suštini ovaj program radi isti pozdrav za argumente, ako ih ima. Ako ih nema, onda se ništa ne prikazuje. Odmah ću dati primjer njegovog izlaza:

Kao što možete vidjeti iz izlaza ovog programa, dio iteracije se izvršava, kao što je već spomenuto, nakon što se izvrši tijelo petlje. U ovom slučaju, ovo je operater println na redu 9. Naredba for u ovom kodu proteže se na dva retka 9 i 10 jer je prilično duga. Učinio sam to kako bih pokazao da se svaki dio izraza for može koristiti u različite svrhe. Također je vrijedno primijetiti da je inkrement varijable i javlja se na liniji 12 i tu se postavlja uvjet za nastavak ili izlazak iz petlje, što se provjerava u retku 9.

Drugi sličan primjer, for petlja može se koristiti za ponavljanje elemenata povezanog popisa:

Također je vrijedno napomenuti da bilo koji dio ciklusa za (inicijalizacija, stanje i iterativno) ili čak možete sve preskočiti... Na primjer, možete stvoriti beskonačnu petlju na ovaj način:

( ;; ){
//beskrajni ciklus
}

Možda nedostaje inicijalizacijski ili iteracijski izraz, ili oboje:

U ovom primjeru inicijalizacija i iterativno izrazi premješteni izvan definicije operatora za... Kao rezultat toga, odgovarajući dijelovi operatora za prazan.

Da bi redoslijed izvršavanja dijelova for naredbe bio jasniji, navest ću mali primjer. Iako još nismo proučili metode, nadam se da razumijete ideju ovog programa. Njegovo je značenje vizualno prikazati slijed izvođenja svih dijelova for naredbe.

Iz izlaza programa se vidi da inicijalizacija dio programa ( initTest () metoda) se izvršava samo jednom.

Zatim se vrši provjera Uvjeti prikazano metodom condTest ().

Nakon provjere Uvjeti , izvedena tijelo ciklus.

I nakon toga dio ponavljanje prikazano metodom recTest ().

U metodi condTest () provjerava se uvjet za nastavak petlje. U ovom slučaju, varijabla i se uspoređuje s 4, a sve dok je varijabla i manja od 4, tada se izvršava tijelo petlje.

Tijelo petlje se izvršava četiri puta budući da je varijabla i prema zadanim postavkama inicijalizirana na nulu.

Operater za svakoga

Počevši od JDK 5, Java može koristiti drugi oblik for petlje, koji implementira petlju u stilu za svakoga ("za sve"). Petlja u stilu za svakoga namijenjen je strogo sekvencijalnom izvršavanju ponavljajućih radnji u odnosu na zbirke objekata, na primjer, kao što su nizovi. U Javi, mogućnost korištenja petlje za svakoga provodi poboljšanjem ciklusa za... Obrazac opće verzije za svakoga ciklus za izgleda ovako:

za (tip iterativne varijable: zbirka) blok naredbe

Vrsta ovo je tip varijable, varijabla iteracije - naziv iterativne varijable koja će sekvencijalno preuzimati vrijednosti iz kolekcija , od prve do zadnje. Element kolekcije specificira kolekciju kroz koju treba proći. S petljom za možete koristiti razne vrste zbirki, ali za sada ćemo koristiti samo nizove, usput, koji također još nisu obrađeni, ali barem je već bilo mnogo primjera s pozdravima iz niza nizova, gdje su argumenti naredbenog retka ići.

napomena: operater za svakoga primjenjivo na nizove i klase koje implementiraju sučelje java.lang.Iterable.

Prilikom svake iteracije petlje, program dohvaća sljedeću stavku u kolekciji i sprema je u varijablu iteracije. Petlja se izvodi dok se ne dohvate svi elementi zbirke.

Dok ponavljate ciklus za u stilu za svakoga se izvršava dok se svi elementi niza (kolekcije) ne obrađuju, petlja se može ranije prekinuti pomoću operatora pauza.

Budući da varijabla iteracije dobiva vrijednosti iz zbirke, njezin tip mora odgovarati (ili biti kompatibilan) s tipom stavki pohranjenih u kolekciji. Dakle, kada se ponavlja niz nizova, tip mora biti kompatibilan s osnovnim tipom niza.

Razumjeti motivaciju iza upotrebe stilskih petlji za svakoga , razmotrite vrstu petlje za da se ovaj stil namjerava zamijeniti.

Uzmite opet naš primjer argumenata naredbenog retka pozdrava:

Nije li to puno elegantnije od korištenja drugih operatora petlje u tu svrhu?

Zapravo, ovaj program ima jednostavan zaključak:

Već smo to vidjeli mnogo puta u različitim verzijama, ali ponavljanje je majka učenja.

Za potpunu jasnoću razmotrite još nekoliko primjera.

Svaki put kada se petlja prođe kroz petlju, xu se automatski dodjeljuje vrijednost jednaka vrijednosti sljedećeg elementa u nizu brojeva. Dakle, pri prvoj iteraciji x sadrži 1, na drugoj 2 i tako dalje. To pojednostavljuje sintaksu programa i isključuje mogućnost izlaska iz niza.

Rezultat ovog dijela programa je sljedeći:

Dok ponavljate ciklus za u stilu za svakoga se izvršava dok se svi elementi niza ne obrađuju, petlja se može ranije prekinuti pomoću operatora pauza... Na primjer:

U ovom primjeru, petlja će izvršiti samo tri iteracije, nakon čega će petlja izaći pod uvjetom operatora akošto će pokrenuti operatera pauza.

Također je važno razumjeti da varijabla iteracije prima vrijednosti iz zbirke (niza) na svakoj iteraciji, stoga, čak i ako se njezina vrijednost promijeni u tijelu petlje, tada će u sljedećoj iteraciji ponovno prihvatiti sljedeću vrijednost iz zbirke. Štoviše, njegove promjene ni na koji način ne utječu na vrijednosti kolekcije (elementi niza u ovom primjeru).

Ovaj kod će ispisati sljedeće:

Bilo koja metoda koja vraća niz može se koristiti s za svakoga ... Na primjer, klasa String sadrži metodu toCharArray koja vraća niz znakova. Primjer:

Ovaj kod će jednostavno prikazati redak Hello World!

U ovom trenutku možete završiti s ovim operatorima. Jedino što je vrijedno spomenuti je da u inicijalizacijskom dijelu možete deklarirati samo varijable istog tipa ili možete inicijalizirati varijable različitih tipova, ali one koje se mogu svesti na isti opći tip u skladu s pravilom uvođenja tipova koje smo razmotrili ranije.

Na kraju ću dati još nekoliko primjera naprednog operatera za... Uglavnom, ovo je samo refaktorirani kod primjera koji sam već naveo.

Nije li istina da je ovaj kod postao čitljiviji i razumljiviji od onog koji sam već dao? Ili nije jasno? Pa onda, pogledajmo još jedan primjer koda koji radi isto.

Zar stvarno opet nije jasno?

Oba ova koda donose isti zaključak:

Naravno, pod uvjetom da su argumenti u zapovjednoj liniji bili Vasya i Petya.

Ovo dovršava izraz for i njegovu foreach sjenu.

Za petlju

Od JDK 5, postoje dva oblika for petlje u Javi. Prvi je tradicionalni oblik koji se koristi od izvorne verzije Jave. Drugi je novi obrazac "za-svakog". Pokriti ćemo obje vrste for petlji, počevši od tradicionalnog oblika.

Opći oblik tradicionalnog for izjave izgleda ovako:

za (inicijalizacija; stanje; ponavljanje)
( // tijelo
}

Ako će se u petlji ponoviti samo jedan izraz, vitičaste zagrade se mogu izostaviti.

Petlja for funkcionira ovako. Kada se ciklus pokrene prvi put, program izvršava inicijalizacijski dio ciklusa. Općenito, to je izraz koji postavlja vrijednost kontrolne varijable petlje koja djeluje kao kontrolni brojač petlje. Važno je razumjeti da se inicijalizacijski izraz izvršava samo jednom. Program zatim procjenjuje uvjet, koji mora biti logički izraz. Obično izraz uspoređuje vrijednost manipulirane varijable s ciljnom vrijednošću. Ako je ova vrijednost istinita, program izvršava tijelo petlje. Ako je lažna, petlja se prekida. Program zatim izvodi dio ponavljanja petlje. Ovo je obično izraz koji povećava ili smanjuje vrijednost manipulirane varijable. Program zatim ponavlja petlju, sa svakom iteracijom, prvo procjenjujući uvjetni izraz, zatim izvršavajući tijelo petlje i izvršavajući izraz ponavljanja. Proces se ponavlja sve dok vrijednost izraza ponavljanja ne postane lažna.

Ispod je verzija programa za brojanje "sat" koji koristi for petlju.

// Demonstracija korištenja for petlje.
klasa ForTick (

int n;
za (n = 10; n> 0; n-)

}
}

Deklariranje kontrolnih varijabli petlje unutar for petlje

Često je varijabla koja pokreće for petlju potrebna samo za nju i ne koristi se nigdje drugdje. U ovom slučaju, varijabla se može deklarirati unutar inicijalizacijskog dijela for naredbe. Na primjer, prethodni program može se ponovno napisati deklariranjem kontrolne varijable tipa int unutar for petlje:

// Deklariranje kontrolne varijable petlje unutar for petlje.
klasa ForTick (javni statički void main (String args) (
// u ovom slučaju varijabla n je deklarirana unutar for petlje
za (int n = 10; n> 0; n-)
System.out.println ("kvačica" + n);
}
}

Kada deklarirate varijable unutar for petlje, imajte na umu sljedeću važnu okolnost: opseg i životni vijek ove varijable potpuno se podudaraju s opsegom i životnim vijekom for naredbe. (To jest, opseg varijable je omeđen for petljom.) Izvan for petlje, varijabla će prestati postojati. Ako se varijabla kontrole petlje treba koristiti u drugim dijelovima programa, ne može se deklarirati unutar for petlje.

U slučajevima kada kontrolna varijabla petlje nije potrebna nigdje drugdje, većina Java programera radije je deklarira unutar for izraza. Kao primjer, evo jednostavnog programa koji provjerava je li uneseni broj prost. Imajte na umu da je kontrolna varijabla petlje i deklarirana unutar for petlje, budući da nije potrebna nigdje drugdje.

Vrste for petlje

Petlja for podržava nekoliko okusa koji povećavaju njegovu snagu i primjenjivost. Fleksibilnost ove petlje proizlazi iz činjenice da se njena tri dijela: inicijalizacija, provjera uvjeta i iterativni, ne moraju koristiti samo za njihovu namjenu. Zapravo, svaki od odjeljaka for izjave može se koristiti za bilo koju svrhu. Pogledajmo nekoliko primjera.

Jedna od češćih varijacija uključuje korištenje uvjetnog izraza. Konkretno, ovaj izraz ne mora uspoređivati ​​kontrolnu varijablu petlje s bilo kojom ciljnom vrijednošću. Zapravo, bilo koji booleov izraz može biti uvjet koji upravlja for petljom. Na primjer, razmotrite sljedeći isječak:

boolean done = false;
za (int i = 1;! gotovo; i ++) (
// ...
if (prekinut ()) done = true;
}

U ovom primjeru, izvođenje for petlje se nastavlja sve dok se done ne postavi na true. Ova petlja ne provjerava vrijednost kontrolne varijable petlje i.

Evo još jedne vrste for petlje. Ostavljajući sva tri dijela iskaza prazna, možete namjerno stvoriti beskonačnu petlju (petlju koja nikad ne završava). Na primjer:

za (;;) (
// ...
}

Ovaj ciklus može trajati neograničeno, budući da ne postoji uvjet pod kojim bi se prekinuo. Dok neki programi, kao što su procesori naredbi operativnog sustava, zahtijevaju beskonačnu petlju, većina "beskonačnih petlji" zapravo su samo petlje s posebnim uvjetima prekida. Kao što ćete uskoro vidjeti, postoji način prekidanja petlje - čak i beskonačne poput ovog primjera - koji ne zahtijeva upotrebu uvjetnog izraza normalne petlje.

Verzija "za svakog" petlje for

Počevši od JDK 5, Java može koristiti drugi oblik for petlje, koji implementira petlju for-each-style. Kao što vjerojatno znate, u modernoj teoriji programskog jezika, koncept petlji "za svaki" sve više se koristi i brzo postaje standardna funkcionalnost na mnogim jezicima. Petlja stila "za-svakog" dizajnirana je za izvođenje ponavljajućih radnji na strogo sekvencijalni način na zbirci objekata, kao što je niz. Za razliku od nekih jezika poput C#, koji koriste ključnu riječ f oreach za implementaciju for-each petlji, Java koristi poboljšanje petlje for-each. Prednost ovog pristupa je u tome što nije potrebna dodatna ključna riječ za njegovu implementaciju, a niti jedan prethodno postojeći kod nije uništen. For-each-stil for petlja se također naziva poboljšana for petlja. Opći oblik "for-each" verzije for petlje je:

za (iterator tipa: zbirka)
blok operateri

Ovdje type označava tip, a ite-lane je naziv iteracijske varijable koja će uzastopno preuzimati vrijednosti iz kolekcije, od prve do posljednje. Element kolekcije specificira kolekciju kroz koju treba proći. Različiti tipovi kolekcija mogu se koristiti s for petljom, ali u ovom ćemo poglavlju koristiti samo nizove. (Druge vrste zbirke koje se mogu koristiti s for petljom, kao što su one definirane u Okviru zbirke, razmatraju se u narednim poglavljima.) Prilikom svake iteracije petlje, program dohvaća sljedeću stavku u kolekciji i pohranjuje je u varijabla iteratora. Petlja se izvodi dok se ne dohvate svi elementi zbirke.

Budući da varijabla iteracije dobiva vrijednosti iz zbirke, tip mora biti isti (ili kompatibilan) s tipom stavki pohranjenih u zbirci. Dakle, kada se ponavlja niz nizova, tip mora biti kompatibilan s osnovnim tipom niza.

Petlja za svaki automatizira ovaj proces. Konkretno, korištenje takve petlje omogućuje da se ne postavlja vrijednost brojača petlje navođenjem njegovih početnih i konačnih vrijednosti, te eliminira potrebu za ručnim indeksiranjem niza. Umjesto toga, program automatski petlja kroz cijeli niz, uzastopno dohvaćajući vrijednosti svakog od njegovih elemenata, od prvog do posljednjeg. Na primjer, s obzirom na "for-each" verziju petlje for, prethodni isječak mogao bi se prepisati na sljedeći način:

int brojevi = (1, 2, 3, 4, 5, b, 7, 8, 9, 10);
int zbroj = 0;
za (int x: brojevi) zbroj + = x;

Svaki put kada se petlja prođe kroz petlju, xu se automatski dodjeljuje vrijednost jednaka vrijednosti sljedećeg elementa u nizu brojeva. Dakle, pri prvoj iteraciji x sadrži 1, na drugoj 2 i tako dalje. To ne samo da pojednostavljuje sintaksu programa, već i isključuje mogućnost pogrešaka pri izlasku iz niza.

Ispod je primjer cjelovitog programa koji ilustrira primjenu opisane verzije "for-each" for petlje.

// Korištenje for-each petlje.
klasa ForEach (
javni statički void main (String args) (

int zbroj = 0;
// koristi stil za svaki za prikaz i zbrajanje vrijednosti
za (int x: brojevi) (

zbroj + = x;
}
System.out.println ("Zbroj je:" + zbroj);
}
}

Vrijednost je: 1
Vrijednost je: 2
Vrijednost je: 3
Vrijednost je: 4
Vrijednost je: 5
Vrijednost je: 6
Vrijednost je: 7
Vrijednost je: 8
Vrijednost je: 9
Vrijednost je: 10
Iznos je: 55

Kao što možete vidjeti iz ovog izlaza, "for-each" -stil for izraz automatski petlja kroz elemente niza, od najnižeg indeksa do najvišeg.

Iako se stil za petlju "za svaki" ponavlja dok se svi elementi niza ne obrađuju, petlja se može prekinuti ranije korištenjem naredbe break. Na primjer, sljedeći program zbraja vrijednosti prvih pet elemenata niza brojeva.

// Korištenje naredbe break u for-each petlji.
klasa ForEach2 (
javni statički void main (String args) (
int zbroj = 0;
int brojevi = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// koristi petlju for za prikaz i zbrajanje vrijednosti
za (int x: brojevi) (
System.out.println ("Vrijednost je:" + x);
zbroj + = x; v ako (x == 5) prekid; // zaustavljanje petlje nakon primanja 5 vrijednosti
}
System.out.println ("Zbroj prvih pet elemenata je:" + zbroj);
}
}

Program generira sljedeći izlaz:

Vrijednost je: 1
Vrijednost je: 2
Vrijednost je: 3
Vrijednost je: 4
Vrijednost je: 5
Zbroj prvih pet elemenata je: 15

Kao što možete vidjeti, izvođenje petlje se zaustavlja nakon što primi vrijednost petog elementa. Naredba break može se koristiti i s drugim Java petljama. O ovom operatoru će se detaljnije raspravljati u sljedećim odjeljcima ovog poglavlja.

Postoji važna točka koju treba imati na umu kada koristite petlju za svaki. Njegova iteracija varijabla je samo za čitanje jer je povezana samo s izvornim nizom. Operacija dodjele vrijednosti iterativnoj varijabli nema utjecaja na izvorni niz. Drugim riječima, sadržaj niza ne može se mijenjati dodjeljivanjem nove vrijednosti varijabli iteracije. Na primjer, razmotrite sljedeći program:

// Varijabla petlje for-each je samo za čitanje.
klasa NoChange (
javni statički void main (String args) (
int brojevi = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
za (int x: brojevi) (
System.out.print (x + "");
x = x * 10; // ovaj operator nema utjecaja na niz brojeva
}
System.out.println ();
za (int x: brojevi)
System.out.print (x + "");
System.out.println ();
}
}

Prva petlja for povećava vrijednost varijable iteracije za 10. Međutim, ova dodjela nema učinka na izvorni niz nums, kao što možete vidjeti iz rezultata drugog for izraza. Izlaz koji je generirao program potvrđuje ovo:

1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10

Iteracija u višedimenzionalnim nizovima

Poboljšana verzija for petlje također se primjenjuje na višedimenzionalne nizove. Međutim, imajte na umu da se u Javi višedimenzionalni nizovi sastoje od nizova nizova. (Na primjer, dvodimenzionalni niz je niz jednodimenzionalnih nizova.) Ovo je važno kada se ponavlja višedimenzionalni niz, jer je rezultat svake iteracije sljedeći niz, a ne jedan element. Štoviše, tip iteracijske varijable petlje for mora biti kompatibilan s tipom rezultirajućeg niza. Na primjer, u slučaju dvodimenzionalnog niza, varijabla iteracije mora biti referenca na jednodimenzionalni niz. Općenito, kada koristite for-each petlju za ponavljanje niza veličine N, rezultirajući objekti bit će N-1 nizovi. Da biste razumjeli što iz ovoga slijedi, razmotrite sljedeći program. U njemu se ugniježđene for petlje koriste za dobivanje redom uređenih elemenata dvodimenzionalnog niza.

// Korištenje for-each petlje na dvodimenzionalnom nizu.
klasa ForEach3 (
javni statički void main (String args) (
int zbroj = 0;
int brojevi = novi int;
// dodjeljivanje vrijednosti elementima niza brojeva
for (int i = 0; i brojevi [i] [j] = (i + l) * (j + l); // koristite for-each petlju za prikaz
// i zbrojimo vrijednosti
za (int x: brojevi) (
za (int y: x) (
System.out.println ("Vrijednost je:" + y);
zbroj + = y;
}
}
System.out.println ("Iznos:" + zbroj);
}

Ovaj program generira sljedeći izlaz:

Vrijednost je: 1
Vrijednost je: 2
Vrijednost je: 3
Vrijednost je: 4
Vrijednost je: 5
Vrijednost je: 2
Vrijednost je: 4
Vrijednost je: 6
Vrijednost je: 8
Vrijednost je: 10
Vrijednost je: 3
Vrijednost je: 6
Vrijednost je: 9
Vrijednost je: 12
Vrijednost je: 15
Iznos: 9 0

Sljedeća linija ovog programa zaslužuje posebnu pozornost:

za (int x: brojevi) (

Obratite pažnju na to kako je varijabla x deklarirana. Ova varijabla je referenca na jednodimenzionalni niz cjelobrojnih vrijednosti. To je zato što je rezultat svake iteracije for petlje sljedeći niz u nizu nums, počevši od niza na koji ukazuje element nums. Unutarnja for petlja zatim ponavlja svaki od ovih nizova, prikazujući vrijednosti svakog od elemenata.

Korištenje petlje Advanced for

Budući da svaki "for-each" for izraz može samo petlju kroz elemente niza uzastopno od prvog do posljednjeg, može se činiti da je od ograničene upotrebe. Međutim, nije. Mnogi algoritmi zahtijevaju korištenje ovog mehanizma. Jedan od najčešće korištenih algoritama je pretraživanje. Na primjer, sljedeći program koristi for petlju da pronađe vrijednost u neuređenom nizu. Pretraživanje se zaustavlja kada se pronađe željena vrijednost.

// Pretražujte niz koristeći for-each stil za petlju.
Pretraživanje razreda (
javni statički void main (String args) (
int brojevi = (6, 8, 3, 7, 5, 6, 1, 4);
int val = 5;
boolean found = lažno;
// koristeći for-each petlju
za (int x: brojevi) (
ako (x == val) (
pronađeno = istina;
pauza;
}
}
ako (pronađeno)
System.out.println ("Pronađena vrijednost!");)

U ovom slučaju, odabir stila "za svaki" za petlju for je potpuno opravdan, budući da pretraživanje u neuređenom nizu uključuje uzastopno gledanje kroz svaki od elemenata. (Naravno, ako je niz naručen, moglo bi se koristiti binarno pretraživanje, što bi zahtijevalo drugačiji stil petlje.) Ostale vrste aplikacija koje imaju koristi od korištenja for-each petlje uključuju usrednjavanje, pronalaženje minimalne ili maksimalne vrijednosti u skupu, pronalaženje duplikati itd.



U Javi, kao iu gotovo svakom programskom jeziku, postoje alati za višestruko ponavljanje određenog dijela koda, ili, kako se oni nazivaju, petlje. Petlje u Javi su predstavljene naredbama kao što su for i while te njihovim varijantama. U pravilu, petlje se koriste za ponavljanje jednodimenzionalnih i višedimenzionalnih nizova i iterativnih struktura podataka (uključujući zbirke) kako bi se pronašli određeni elementi i daljnje operacije s njima. Međutim, ovo nije jedini način korištenja alata kao što je Java Loop. Slučajevi korištenja bit će navedeni kako se budu razmatrali.

Java: opis i primjeri

Osnovni operator petlje u Javi je while. Fragment koda zatvoren u svom tijelu će se ponavljati sve dok uvjet izraza zatvorenog u zagrade nakon što zadovolji logičku vrijednost istine. Opći oblik izjave while je sljedeći:

dok (uvjet) (

// tijelo ciklusa

Čim vrijednost logičkog uvjeta prestane biti istinita, kod zatvoren u tijelu petlje će se prestati izvršavati i kontrola će se prenijeti na red koji odmah slijedi.

Ako postoji samo jedan operator u tijelu petlje, vitičaste zagrade se mogu izostaviti, ali se smatra dobrim ako se uvijek pojavljuju. Gornja slika prikazuje blok dijagram rada ovog operatora.

Radi jasnoće, pogledajmo primjer prikazan na donjoj slici:

Deklarirana varijabla count u početku ima vrijednost 1. Zatim vidimo logički izraz zatvoren u zagradama iza imena operatora. Bit će istina, t.j. vrati true sve dok je vrijednost varijable count manja ili jednaka 10. U tijelu petlje, svakim prolazom (iteracijom), vrijednost varijable se povećava za 1 i prikazuje na ekranu konzole. Imajte na umu da kada je varijabla dosegnula 11, petlja je prestala raditi.

Ako je vrijednost varijable count inicijalno jednaka 11, tada bi uvjet petlje bio lažan, a program ne bi ni ušao u njegovo tijelo.

Vrijedi napomenuti da Java sintaksa omogućuje korištenje naredbe while bez tijela. Navedimo primjer. Pretpostavimo da imamo dvije varijable i = 100 i j = 200, suočeni smo sa zadatkom da programski izračunamo njihovu aritmetičku sredinu - za to možete koristiti "šuplju" dok:

dok (++ i< --j);

Kao rezultat toga, vrijednost bilo koje od dvije varijable bit će jednaka prosjeku njihovih izvornih vrijednosti. Kao što vidite, petlja je dobro radila bez tijela i izvela je sve potrebne radnje u uvjetnom izrazu.

Do-while petlja

U prethodnim primjerima, ako je uvjetni izraz u početku vratio false, tada bi izvođenje programa zanemarilo tijelo petlje i nastavilo bi se dalje. Međutim, često se javljaju situacije u kojima je izvršenje koda sadržanog u tijelu petlje obavezno barem jednom, bez obzira na istinitost uvjetnog izraza. Drugim riječima, događa se da je potrebno provjeriti istinitost uvjetnog izraza ne na početku, već na kraju ciklusa. Varijacija while petlje nazvana do-while može pružiti ovu funkcionalnost. Ima sljedeći oblik:

čini (
// tijelo ciklusa

) dok (uvjet);

Kao što vidimo, prvo tijelo petlje ide u izvršenje, a tek onda se provjerava istinitost uvjeta - i tako na svakoj iteraciji.

Gornji kod radit će na isti način kao i kod običnog while. Međutim, da smo varijabli count dodijelili vrijednost 11, tijelo petlje bi se i dalje izvršilo jednom prije nego što bi operator mogao testirati da je izraz istinit.

Opis i primjeri za - Java petlju

To je svestran i učinkovit oblik jezika u Javi. Prije pete verzije Java SDK-a, postojao je samo jedan tradicionalni oblik for naredbe, a zatim se pojavio novi - za svaki. U ovom dijelu ćemo se upoznati s tradicionalnim oblikom operatora. za Javu petlja izgleda ovako:

Prije nego se kontrola prenese na kod u tijelu petlje, varijabla i se inicijalizira da djeluje kao brojač. Zatim se provjerava uvjetni izraz u kojem se brojač uspoređuje s određenom vrijednošću, a ako vrati true, izvršava se tijelo petlje. Zatim se vrijednost brojača mijenja unaprijed određenim korakom i uvjetni izraz se ponovno provjerava, i tako sve dok uvjet ne postane lažan. Donji dijagram toka ilustrira sve faze ciklusa.

Za bolje razumijevanje, evo primjera kako radi Java petlja:

Možemo vidjeti da se varijabla loopVal koristi kao brojač. Nakon svake iteracije petlje, njena vrijednost će se povećati za 1, a to će se nastaviti sve dok ne dosegne 11. Imajte na umu da se kontrolna varijabla može deklarirati izvan izraza for, ali ako ovu varijablu nećete koristiti nigdje osim u petlju, preporuča se deklarirati je izravno u izjavi. Imajte na umu da je varijabla deklarirana u samom izrazu obuhvaćena unutar te petlje.

Postoje situacije kada trebate deklarirati nekoliko varijabli koje kontroliraju petlju. Za Javu, petlja vam omogućuje da navedete dvije ili više varijabli odvojenih zarezima, a to se može učiniti i tijekom njihove inicijalizacije i tijekom iteracije. Takav operator će izgledati ovako:

za (int i = 1, int j = 10; i< j; ++i, --j) {}

Sa svakom iteracijom, vrijednost varijable i će se povećati za 1, a vrijednost varijable j će se smanjiti za 1. Iteracije će se izvoditi sve dok i ne bude veće ili jednako j.

Specifičnosti korištenja operatora for

Petlja for je prilično fleksibilna jer se sva tri njezina dijela (inicijalizacija, uvjet i povećanje/dekrement) mogu koristiti izvan oznake. Na primjer, umjesto uvjetnog izraza s kontrolnom varijablom, možete zamijeniti bilo koju logičku varijablu.

boolean izlaz = lažno;

za (int i = 0;! izlaz; ++ i) (

U gornjem primjeru možemo uočiti kako je rad petlje apsolutno neovisan o kontrolnoj varijable i, a broj iteracija ovisi isključivo o trenutku u kojem izlaz varijable postaje istinit. Štoviše, kontrolna varijabla može se potpuno ukloniti iz petlje i to neće utjecati na njezin rad ni na koji način: for (;! Exit;) (). Iako nije najpametniji način programiranja, ponekad može biti koristan. Glavna stvar je predvidjeti situaciju u kojoj će varijabla uzeti vrijednost potrebnu za izlazak iz petlje, kako je ne bi pretvorila u beskonačnu.

Za Javu, petlja se može deklarirati na ovaj način: for (;;) (). Ovo je tipičan primjer beskonačne petlje s posebnim prekidnim uvjetima. O tome kako prekinuti takve cikluse ćemo govoriti malo kasnije.

Za svaku petlju

Java foreach petlja se uvijek koristi za ponavljanje elemenata niza ili nešto slično i izvođenje određenih ponavljajućih operacija na njima. Primjer ovog oblika izjave for prikazan je u nastavku:

Ime je deklarirano kao varijabla iteracije, a niz imena nizova deklariranih ranije je drugi argument operatora. Ime varijable uzimat će vrijednosti svakog elementa niza redom dok se svi njegovi elementi ne dohvate. Treba napomenuti da tip varijable mora biti kompatibilan s tipom elemenata koji su pohranjeni u nizu. Također, varijabla name dostupna je isključivo za čitanje i pokušaj njezine promjene neće promijeniti sam element u nizu.

Operatori prekidne petlje

Postoje tri naredbe prekida petlje: break, return i continue. Prva dva mogu u potpunosti prekinuti rad petlje, dok nastavak prekida samo rad tekuće iteracije. Ako namjerno koristite beskonačnu Java petlju u svom kodu, ovi operatori moraju biti prisutni u njoj. Pogledajmo jednostavan primjer korištenja break:

Iako ova for naredba daje 11 iteracija, samo 8 će se izvršiti, jer kada je brojač i 7, aktivirat će se uvjet u čijem se tijelu nalazi break naredba.

Naredba return radi na sličan način, s tom razlikom što ne samo da izlazi iz Java petlje, već također izlazi iz metode u koju je petlja postavljena.

Korištenje break kao goto

Treba imati na umu da prekid prekida rad samo petlje u čijem se tijelu izravno nalazi, t.j. ako ga koristite u ugniježđenoj petlji, vanjska petlja neće prestati raditi. Za to se izjava break može koristiti kao civilizirani oblik goto.

U ovoj verziji ovaj se operator koristi zajedno s oznakom, što vam omogućuje da organizirate izlaz ne samo iz petlji, već i iz bilo kojeg bloka koda. Oznaka je identifikator s odgovarajućim nazivom iza kojeg slijedi dvotočka. Oznaka je deklarirana na početku kodnog bloka koji će se označiti. Da biste prekinuli izvršenje označenog bloka, morate deklarirati na pravom mjestu: break tag_name. Razmotrite primjer na donjoj slici:

Kod deklarira tri bloka s nazivima oznaka Jedan, Dva i Tri, redom. Naredba break s oznakom Two je ugniježđena u sva tri bloka, ali kada se pokrene, program će izaći iz bloka Three i Two i nastaviti izvršavanje u bloku One. Oni. vidjet ćemo dvije poruke u konzoli: Three i One.

Zaključak

Upoznali smo se s konceptom petlji u Javi, glavnim while i for naredbama, te njihovim do-while i for each formama. Za bolje razumijevanje preporučamo izvođenje vježbi koristeći ove operatore u različitim oblicima, kao i različite načine njihovog prekidanja i prelaska iz jednog bloka u drugi.

U ovom vodiču naučit ćemo kako ponovno izvršiti dijelove našeg koda na kontroliran način gledajući različite vrste petlji u Java... Pogledajmo pobliže petlje: dok, čini-dok, za... Pokušat ćemo utvrditi u kojim slučajevima, koji je od ciklusa najprikladniji za korištenje.

Zatim ćemo na brzinu pogledati temu slučajnih brojeva ( nasumičnobrojevima). Pogledajmo Java-Razred Slučajno i kako nam može pomoći u našoj igri.

Petlja je, kao što ime sugerira, način izvršavanja istog dijela koda onoliko puta koliko je potrebno (dok se rezultat izvršavanja koda u petlji neće nužno ponavljati). Broj ponavljanja izvođenja petlje može biti unaprijed određen ili nepoznat samom programeru. Pogledat ćemo glavne vrste petlji koje nam jezik predlaže za korištenje. Java. A onda ćemo neke od njih uvesti u našu igru ​​i time je poboljšati.

Dok petlja

Ciklus dok ima najjednostavniju sintaksu. Zapamtiti ako-nastava koju smo malo ranije učili. Na uvjetni izraz operatora ako(ono što je u zagradama iza riječi ako) možete staviti gotovo bilo koju kombinaciju operatora i varijabli. Ako je izraz istinit ( pravi), zatim kod zatvoren u tijelu bloka ako bit će izvršena. Slično u petlji dok stavljamo izraz koji može procijeniti na pravi ili lažno kao što je prikazano u ovom kodu:

Int x = 10; dok (x> 0) (x--; // x se smanjuje za jedan svaki prolaz petlje)

Što se ovdje događa? Prva stvar izvan petlje dok deklarirali smo varijablu x tip int i ovoj varijabli dodijelio vrijednost “10”. Tada počinje ciklus dok, u kakvom je stanju napisan x> 0 "- to znači da je kod napisan u tijelu petlje dokće se izvršavati sve dok varijabla x više 0 a uvjet neće dostići vrijednost lažno... Stoga će se kod izvršiti 10 puta (x = 10, x> 0; x = 9, x> 0; x = 8, x> 0; x = 7, x> 0; x = 6, x> 0; x = 5, x> 0; x = 4, x> 0; x = 3, x> 0; x = 2, x> 0; x = 1, x> 0). U prvom prolazu petlje x = 10, već u drugom 9 , u trećem 8 itd. I kada x bit će jednaki 0 , tada uvjet ulaska u petlju neće biti ispunjen, a program će se nastaviti iz sljedećeg retka nakon završetka petlje.

Baš kao u operateru ako, moguća je situacija u kojoj se ciklus neće izvršiti niti jednom. Pogledajte sljedeći primjer:

Int x = 10; dok (x> 10) (// neki kod // ali nikada se neće izvršiti dok x nije veći od 10)

Osim toga, nema ograničenja na složenost izraza uvjeta ili količinu koda koji se može napisati u tijelu petlje:

Int playerLives = 3; int alienShips = 10; dok (playerLives> 0 && alienShips> 0) (// Sav kod igre je ovdje // ... // ... // itd.) // program će se nastaviti ovdje kada playerLives ili alienShips = 0

Ova petlja će se izvoditi sve do varijable playerLives ili vanzemaljski brodovi neće biti jednak ili manji od nule. Čim se ispuni jedan od ovih uvjeta, izraz u uvjetu će poprimiti vrijednost lažno a program će se nastaviti u sljedećem retku nakon završetka petlje.

Treba napomenuti da čim program uđe u tijelo petlje, on će se izvršiti čak i ako uvjet petlje postane lažno, negdje u tijelu ciklusa, jer uvjet se provjerava samo pri ulasku:

Int x = 1; dok (x> 0) (x--; // x je sada 0 i uvjet će sljedeći put biti netačan // Ali ovaj red će se izvršiti // I ovaj // Pa čak i ovaj)

U gornjem primjeru, tijelo petlje će se izvršiti jednom. Osim toga, možete postaviti takav uvjet da će petlja trajati zauvijek - to se zove beskrajni ciklus. Evo primjera:

Int x = 0; dok (točno) (x ++; // Postat ću jako velik!)

Izađite iz njihovog ciklusa. Ključna riječ pauza

Što ako stvarno trebamo koristiti beskonačnu petlju, ali tako da možemo odlučiti u kojem trenutku ćemo izaći iz nje. U tu svrhu u Java postoji ključna riječ pauza... Možemo koristiti pauza kada trebamo "izaći" iz petlje:

Int x = 0; dok (true) (x ++; // Postat ću jako velik! break; // Ne, nećeš! // kod ovdje neće biti dosegnut)

Vjerojatno ste već pogodili da je moguće kombinirati različite alate za donošenje odluka, kao npr ako,drugo,sklopka unutar naše petlje dok i druge petlje, koje ćemo razmotriti u nastavku. Na primjer:

Int x = 0; int prevelik = 10; dok (true) (x ++; // Postat ću jako velik! if (x == prevelik) (prekid; // Ne, nećete.) // kod će biti dostupan ovdje dok x ne bude 10)

Možete napisati još mnogo različitih varijacija, ali praktična primjena tog znanja nam je važnija, pa nećemo sada dublje. Pogledajmo još jedan koncept kojim se može upravljati u petlji.

Ključna riječ nastaviti

nastaviti djeluje gotovo isto kao pauza... Ključna riječ nastaviti izbacit će vas iz tijela petlje, ali tada provjerite uvjetni izraz umjesto da nastavi nakon zatvaranja vitičaste zagrade petlje, kao što bi bio slučaj sa pauza... Sljedeći primjer pokazuje upotrebu nastaviti:

Int x = 0; int prevelik = 10; int tooBigToPrint = 5; dok (true) (x ++; // Postat ću jako velik! if (x == prevelik) (prekid;) // Ne, nećete. // Ovdje će kod biti dostupan samo dok ne bude x 10 if (x> = tooBigToPrint) (// više se neće ispisivati ​​na zaslon, ali će se petlja nastaviti nastaviti;) // ovdje će kod biti dostupan dok x ne bude jednak 5 // kod za ispis x na zaslon)

Objašnjenje: deklariramo i inicijaliziramo varijable. Ulazimo u petlju - dodajmo vrijednosti varijable x jedinica (sada x= 1). Provjera "1 je 10?" - lažno- prvi operater ako nije izvršeno. Sljedeća provjera je "Je li 1 veće ili jednako 5?" - lažno- drugi operater ako nije izvršeno. Zaključujemo x na ekranu.

Razmotrite opciju kada x poprimit će vrijednost 5 pri ulasku u petlju. Ulazimo u petlju - dodajmo vrijednosti varijable x jedinica (sada x= 6). Provjera "6 je 10?" - lažno- prvi operater ako nije izvršeno. Sljedeća provjera je "Je li 6 veće ili jednako 5?" - pravi- ulazimo u tijelo akonastaviti, izađite iz petlje i provjerite uvjet za ulazak u petlju.

Sada je opcija kada x poprimit će vrijednost 9 pri ulasku u petlju. Ulazimo u petlju - dodajmo vrijednosti varijable x jedinica (sada x= 10). Provjera "je li 10 jednako 10?" - pravi- ulazimo u tijelo akopauza, izađite iz petlje i kod će se nastaviti iza zatvarajuće vitičaste zagrade petlje dok.

Do-while petlja

Gotovo isto kao i prethodna petlja, s izuzetkom jedne osobitosti - provjera izvršenja uvjetnog izraza dogodit će se nakon tijela petlje. To znači da ciklus čini-dok uvijek će se pokrenuti barem jednom. Pogledajte primjer:

Int x = 0; učiniti (x ++;) dok (x< 10); //x теперь = 10

Ključne riječi pauza,nastaviti

Za petlju

Ciklus za ima složeniju sintaksu od dok i čini-dok jer je potrebno malo više manipulacije da se inicijalizira. Pogledajmo ga prvo, a zatim ga razdvojimo na dijelove:

Za (int i = 0; i< 10; i++){ //Что-то, что должно произойти 10 раз будет записано здесь }

Kako to vidi prevodilac? Kao ovo:

For (deklaracija i inicijalizacija; uvjet; promjena nakon svake petlje) (// tijelo petlje)

  • Deklaracija i inicijalizacija- kreirali smo novu varijablu tipa int S imenom i i dodijelio mu vrijednost 0 ;
  • Stanje- slično drugim petljama koje smo ranije razmatrali, ovdje provjeravamo uvjet ulaska u petlju. Ako se vrijednost izračuna kao pravi, tada ulazimo u tijelo ciklusa;
  • Promijeniti nakon svakog ciklusa- u gornjem primjeru i++ znači da smo nakon sljedećeg prolaska petlje na vrijednost varijable i dodajte jedan (1). Štoviše, u promjeni varijable možemo napisati i i oduzeti jedan, na primjer:
for (int i = 10; i> 0; i -) (// odbrojavanje) // tipka za pokretanje, i = 0

Ključne riječi pauza,nastaviti također se može koristiti u ovoj petlji.

Ciklus za preuzima kontrolu nad inicijalizacijom, provjerom stanja i promjenom varijable. Isprobajmo ovaj ciklus u praksi u našoj aplikaciji odmah nakon što se upoznamo slučajni brojevi i metode.

Vrhunski povezani članci