Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Iron
  • Uradite while i foreach petlje.

Uradite while i foreach petlje.

Petlje se koriste za ponavljanje dijelova koda iznova i iznova. Mogućnost ponavljanja određenih fragmenata koda jedan je od glavnih i istovremeno važnih zadataka koje programer mora riješiti. Većina programa ili web stranica koristi petlje, na primjer, za prikaz informacija o vijestima ili najavama. Odnosno, u takvim zadacima potrebno je stalno izvoditi operacije čitanja i pisanja, a kako ne bi duplicirali isti kod, petlje dolaze u pomoć. Petlje su deklarirane prilično jednostavno u kodu, ali one rade složeni zadaci, samo jednostavno ponavljanje.

Da biste započeli učenje o petljama, pobrinite se da dobro razumijete koncept u programskom jeziku C. Zato što će to biti od vitalnog značaja za korišćenje ciklusa, jer u ciklusima, baš kao iu ciklusima, postoje uslovni izrazi. Postoje tri tipa petlji u jeziku C: for, while, do while. Svaki od njih ima svoje specifične primjene. Svi oni su opisani u nastavku.

Najčešće korištena petlja je for petlja, njena struktura je prikazana u nastavku:

Za (/*inicijalizacija varijable; uvjet; promjena vrijednosti varijable*/) ( // tijelo petlje (ovdje je kod koji će se ponoviti) )

Inicijalizacija varijable vam omogućava da deklarirate varijablu i dodijelite joj vrijednost ili da dodijelite vrijednost postojećoj varijabli. Drugo, vrijednost ove varijable govori programu da li je uvjet petlje istinit ili netačan. I sve dok je uslov petlje tačan, petlja treba nastaviti da se ponavlja. Kontrolna varijabla se mora nekako promijeniti, inače će petlja biti beskonačna, na primjer, možete je ažurirati ovako: i++ , i = i + 2 ili čak i = random(5) . Imajte na umu da je svaki odjeljak u zaglavlju petlje odvojen točkom i zarezom, što je vrlo važno. Također imajte na umu da svaki od odjeljaka može biti prazan, iako bi tačke i zareze trebale biti tamo. Ako uslov nije prazan, onda se procjenjuje na istinito i petlja će se izvršavati sve dok nešto ne učini uvjet petlje lažnim. Pogledajmo jednostavan primjer korištenja for petlje.

#include int main() ( int i; /* Petlja će se izvoditi do i< 10, при этом после каждой итерации переменная i будет инкрементироваться(увеличиваться на 1)*/ for (i = 0; i < 10; i++) { /* Имейте ввиду что условие проверяется перед каждым повторением, то есть работа цикла остановится когда переменная i будет равна 10*/ printf("%d\n", i); } getchar(); }

Zapravo, rezultat programa:

0 1 2 3 4 5 6 7 8 9

Ovaj program je vrlo jednostavan primjer korištenja petlje. promenljivoj i se dodeljuje nula, a dok je i manji od 10, vrednost varijable i se ispisuje na ekran, nakon čega se promenljivoj i dodaje jedna i sve se ponavlja dok uslov ne postane netačan. Imajte na umu da se vrijednost varijable i povećava nakon što se kod u tijelu petlje pokrene po prvi put.

Dok petlja je vrlo jednostavna petlja, evo njene strukture:

Dok (/*uvjet*/) ( // tijelo petlje - evo koda koji treba ponoviti)

Telo petlje počinje da se izvršava ako je uslov petlje tačan. Uslov je Boolean izraz, kao što je x == 1 ili x! = 7 (x nije jednako 7). Odnosno, uslov može biti apsolutno bilo šta - bilo koja kombinacija logičkih izraza. Evo primjera složenog uslova - x == 3 || x > 10, ovaj uslov će biti istinit ako je x jednako tri ili je x veće od 10. Imajte na umu da dok ima odjeljak za inicijalizaciju ili odjeljak za modifikaciju kontrolirane varijable, tako da prije korištenja ove petlje, prvo morate deklarirati varijablu koja će se testirati u petlji uvjeta iu tijelu petlje promijeniti vrijednost ove varijable. Zapravo, pogledajmo jednostavan primjer koristeći while petlju:

#include int main() ( int var = 0; /* obavezno prvo deklarirajte varijablu */ dok (var< 10) { /* пока значение переменной var меньше 10 */ printf("%d\n", var); var++; /* обновляем значение в переменной var(если этого не делать, то условие цикла всегда будет истинным, тогда цикл будет - бесконечным) */ } getchar(); }

Stoga smo pogledali još jedan primjer korištenja petlji, i kao što vidite, u ovom primjeru nema ništa komplicirano. Zamislite samo da petlja uvijek počinje ponavljati kod koji se nalazi u tijelu petlje. Čim se izvrši posljednja naredba u tijelu petlje, provjerava se stanje petlje. Ako je uslov i dalje tačan, onda petlja nastavlja sa radom, a ako je uslov netačan, tada se izlazi iz petlje.

Postoji još jedna vrsta petlje - uradi while. Ova petlja je korisna kada trebate izvršiti kod prema najmanje- 1 put. Pogledajmo njegovu strukturu:

Uradi ( // tijelo petlje) while (/*uvjet*/);

Struktura je vrlo jednostavna, kao što vidite, uslov se nalazi na kraju petlje, pa će shodno tome, uslov biti provjeren nakon što se izvrši kod u tijelu petlje. Imajte na umu da se uvjet testira na kraju petlje, a ne na početku, tako da će blok koda u tijelu petlje biti izvršen barem jednom. Ako je uslov tačan, petlja se vraća na početak i ponovo ga izvršava. Do while petlja je skoro ista kao i while petlja, osim što je zajamčeno da će tijelo petlje biti izvršeno barem jednom. Dok petlja prvo provjerava uslov, a zatim izvršava blok koda u tijelu, ako je uvjet tačan, naravno, dok petlja do while prvo izvršava kod u tijelu petlje, a zatim provjerava uslov, i da li je je istina, onda nastavlja da radi. Primjer do while petlje je prikazan u nastavku:

#include int main() ( int i = 0; do ( /* Ispisuje poruku i izlazi iz */ printf("Zdravo! Radim petlju while\n"); ) while (i != 0); getchar() ; )

Obratite pažnju na točku i zarez na kraju petlje, uvijek biste trebali staviti točku i zarez kao u primjeru iznad. Vrlo često ova tačka i zarez nije uključena, što rezultira greškom u kompilaciji. Samo se ovaj ciklus završava tačkom i zarezom; ostali ciklusi nemaju ništa na kraju osim završne zagrade. Imajte na umu da će u gornjem primjeru ova petlja biti izvršena jednom jer se prvo ispisuje poruka, a zatim se provjerava stanje petlje.

for loops i dok

C# ima četiri razne vrste petlje (for, while, do...while i foreach), koje dozvoljavaju da se blok koda izvršava uzastopno dok se ne ispuni određeni uslov. U ovom članku ćemo naučiti o for i while petljama.

za petlju

Petlja for u C#-u pruža mehanizam iteracije u kojem se određeni uvjet testira prije izvršavanja svake iteracije. Sintaksa ove izjave je prikazana u nastavku:

za (inicijalizator; stanje; iterator) iskaz(e)

inicijalizator

ovo je izraz procijenjen prije prvog izvršavanja tijela petlje (obično inicijalizira lokalnu varijablu kao brojač petlje). Inicijalizacija je obično predstavljena operatorom dodjeljivanja koji specificira prvi početna vrijednost varijabla koja djeluje kao brojač i kontrolira petlju;

stanje

ovo je izraz koji se testira prije svake nove iteracije petlje (mora vratiti true da bi se sljedeća iteracija izvršila);

iterator

izraz evaluiran nakon svake iteracije (obično povećava vrijednost brojača petlje).

Imajte na umu da ova tri glavna dijela izraza petlje for moraju biti odvojena tačkom i zarezom. Petlja for će nastaviti da se izvršava sve dok test uslova procijeni na istinito. Čim ova provjera ne uspije, petlja će se završiti i izvršavanje programa će se nastaviti s naredbom koja slijedi nakon petlje for.

Vrijedi napomenuti da je for petlja odlična za ponavljanje izvršavanja naredbe ili bloka izraza poznati broj puta. hajde da razmotrimo praktična upotreba for petlju koristeći sljedeći primjer:

Korišćenje sistema; koristeći System.Collections.Generic; koristeći System.Linq; koristeći System.Text; imenski prostor ConsoleApplication1 ( klasa Program ( // Ova metoda ispisuje tablicu množenja // veličine b x b static void tab(byte b) ( Console.WriteLine("Tablica množenja (0) x (0)\n", b); // Ova petlja prolazi kroz linije za (int i = 1; i

while petlja

Slično kao za, dok je također ciklus sa pre-check. Sintaksa je slična, ali while petlje uključuju samo jedan izraz:

dok(uvjet) operator(i);

Gdje operater je jedan operator ili blok operatora, i stanje znači određeni uvjet kontrole ciklusa i može biti bilo koji logički izraz. U ovoj petlji, naredba se izvršava sve dok je uslov istinit. Jednom kada uslov postane netačan, kontrola programa se prenosi na red koda odmah nakon petlje.

Kao i for petlja, while petlja provjerava uslovni izraz, specificirano na samom početku petlje. To znači da se kod u tijelu petlje možda uopće neće izvršiti, a također eliminira potrebu da se izvrši posebna provjera prije same petlje.

Operator petlje za generalizuje dobro poznatu konstrukciju ciklusa tipa aritmetičke progresije. Njegova sintaksa je:

za(inicijalizatori; stanje; lista_izraza) operator

Naredba nakon završne zagrade definira tijelo petlje. U većini slučajeva, tijelo petlje je blok. Inicijalizatori postavljaju početnu vrijednost jedne ili više varijabli, koje se često nazivaju brojači ili jednostavno varijable petlje. Uvjet specificira uvjet za završetak petlje; odgovarajući izraz, kada se izračuna, mora primiti vrijednost istinito ili false. Lista izraza razdvojena zarezima pokazuje kako se brojači petlje mijenjaju u svakom koraku izvršenja. Ako je uslov petlje tačan, tada se izvršava tijelo petlje, zatim se mijenjaju vrijednosti brojača i uvjet se ponovo provjerava. Čim uslov postane netačan, petlja se završava. U normalnoj situaciji, tijelo petlje se izvršava konačan broj puta. Brojači petlje se često deklarišu direktno u inicijalizatoru i, shodno tome, predstavljaju varijable lokalizovane u petlji.

U slučajevima kada je moguće prerano prekinuti petlju pomoću jedne od jump naredbi, brojači se deklariraju prije petlje, što omogućava analizu njihovih vrijednosti pri izlasku iz petlje.

Kao primjer, razmotrite klasični problem da li je niz teksta palindrom. Da biste to riješili, ciklus za najbolje odgovara.

Ovdje se koriste dva brojača - jedan povećava, drugi opada. Evo teksta odgovarajuće procedure:

/// < sažetak>
/// Definicija palindroma. Demonstracija ciklusaza
///
/// tekst
/// < vraća> istinito- ako je tekst palindrom
javni bool palindrom (string str){
za (int i= 0, j= str.Length- 1; i< j; i++, j--)
ako (str[i]!= str[j]) return (false);
povratak (istinito);
} // Palindrom

5.6.2. While Loops

Ciklus dok(izraz) je univerzalni tip petlje uključen u sve programske jezike. Tijelo petlje se izvršava sve dok izraz ostaje istinit dok. U jeziku C#, ovaj tip petlje ima dvije modifikacije - sa provjerom uvjeta na početku i na kraju petlje. Prva modifikacija ima sljedeću sintaksu:

while(izraz) izjava

Ova modifikacija odgovara petlji sa preduvjetom. Tijelo takve petlje možda se nikada neće izvršiti. U normalnoj situaciji, svako izvršavanje tijela petlje je još jedan korak ka završetku petlje.

Petlja koja provjerava uslov završetka na kraju odgovara petlji sa postuslovom. Tijelo takve petlje se izvršava najmanje jednom. Evo sintakse za ovu modifikaciju:

uradi
operater
while(izraz);

Navedimo primjer u kojem učestvuju obje modifikacije ciklusa dok. U vanjskoj petlji provjera se vrši na kraju, au unutrašnjoj na početku. Vanjski ciklus je tipičan primjer organizacije nastavni planovi i programi, kada se određeni zadatak više puta rješava u dijalogu s korisnikom. Na svakom koraku korisnik unosi nove podatke, rješava problem i analizira primljene podatke. U njegovoj je moći da li će nastaviti kalkulacije ili ne, ali problem mora riješiti barem jednom. Unutrašnja petlja uradidok koristi se za rješavanje već poznatog problema s palindromima. Evo teksta odgovarajuće procedure:

/// < sažetak>
/// Dvije petlje: sa provjerom na kraju i na početku.
/// Vanjska petlja je primjer problema koji se može riješiti mnogo puta.
/// Kraj ciklusa se utvrđuje u dijalogu sa korisnikom.
///
public void Loop(){
// Počniprocedurestring odgovor, tekst;
uradi{
// početak vanjske petlje
Konzola. WriteLine("Unesite riječ");
tekst= Console.ReadLine();
int i= 0, j= text.Length- 1;
dok ((i< j)&& (tekst[i]== tekst[j])) (
// enterijerciklus
i++; j-- ;
}
ako (tekst[i]== tekst[j]) Console.WriteLine(tekst+ " - Ovopalindrom!");
else Console.WriteLine(tekst+ " - OvoNepalindrom!");
Console.WriteLine("Hajde da nastavimo? (da ne)");
odgovori= Console.ReadLine();
} dok (odgovor== "da");// krajvanjskiciklus
} // Petlja

5.6.3. forEach petlja

Novi tip petlje, koji nije naslijeđen od C++-a, je petlja za svaki, pogodan za rad sa nizovima, kolekcijama i drugim sličnim kontejnerima podataka. Njegova sintaksa je:

za svaki(identifikator tipainkontejner) operater

Petlja radi upravo onako kako joj ime sugerira - tijelo petlje se izvršava za svaki element u kontejneru. Tip identifikatora mora biti u skladu s tipom elemenata pohranjenih u spremniku podataka. Takođe se pretpostavlja da su elementi kontejnera (niz, kolekcija) poređani. U svakom koraku ciklusa, identifikator koji specificira trenutni element kontejnera prima vrijednost sljedećeg elementa u skladu s redoslijedom utvrđenim na elementima kontejnera. Tijelo petlje se izvršava sa ovim trenutnim elementom - izvršava se onoliko puta koliko ima elemenata u kontejneru. Ciklus se završava kada su svi elementi kontejnera u potpunosti nabrojani. Ozbiljan nedostatak ciklusa za svaki u jeziku C# je da petlja radi samo za čitanje, ali ne i za pisanje elemenata. Dakle, morate ispuniti kontejner elementima koristeći druge operatore petlje.

Primjer ispod pokazuje kako se radi sa 3D nizom. Niz se kreira pomoću petlji poput za, a pri pronalaženju zbira njegovih elemenata, minimum i maksimalna vrijednost koristi se petlja za svaki:

/// < sažetak>
/// Demonstracija ciklusaza svaki.
/// Izračunati zbir, maksimum i minimalni elementi
/// trodimenzionalni niz ispunjen slučajnim brojevima.
///
public void SumMinMax(){
int[,] arr3d= new int;
Random rnd= novi Random();
za (int i= 0; i< 10; i++)
za (int j= 0; j< 10; j++)
za (int k= 0; k< 10; k++)
arr3d= rnd.Next(100);
duga suma= 0;
int min= arr3d,max= arr3d;
foreach (int stavka u arr3d){
suma+= predmet;
ako (stavka> max)maks= predmet;
inače ako (stavka< min)min= predmet;
}
Console.WriteLine("sum= {0}, min= {1}, max= {2}", zbir, min, max);
} // SumMinMax

do while i foreach petlje

do petlje . . dok

do...while petlja u C#-u ovo je verzija while sa provjerom nakon uvjeta. To znači da se stanje petlje provjerava nakon što se izvrši tijelo petlje. Stoga su do...while petlje korisne u situacijama kada se blok naredbi mora izvršiti barem jednom. Ispod je opšti oblik naredba do-while petlje:

do (operatori; ) while (stanje);

Ako postoji samo jedan operater proteze Unosi u ovom obrascu nisu obavezni. Međutim, oni se često koriste kako bi konstrukt do-while učinili čitljivijim i da se ne miješaju s konstrukcijom while petlje. Do-while petlja se izvodi sve dok je uslovni izraz istinit. Primjer korištenja do-while petlje je sljedeći program, koji izračunava faktorijel broja:

Korišćenje sistema; koristeći System.Collections.Generic; koristeći System.Linq; koristeći System.Text; imenski prostor ConsoleApplication1 ( klasa Program ( static void Main(string args) (pokušajte ( // Izračunajte faktorijel broja int i, rezultat = 1, broj = 1; Console.WriteLine("Unesite broj:"); i = int .Parse(Console .ReadLine()); Console.Write("\n\nFactorial (0) = ", i); do ( rezultat *= num; num++; ) while (num

foreach petlja

foreach petlja služi za ciklički pristup elementima kolekcije, koja je grupa objekata. C# definira nekoliko tipova kolekcija, od kojih je svaka niz. Sljedeći je opći oblik izraza foreach petlje:

foreach (tip loop_variable_name u kolekciji) izraz;

Evo tip loop_variable_name označava tip i ime kontrolna varijabla petlja koja dobija vrijednost sljedećeg elementa kolekcije u svakom koraku foreach petlje. A zbirka označava ciklički upitanu kolekciju, koja u nastavku predstavlja niz. Stoga, tip varijable petlje mora odgovarati tipu elementa niza. Osim toga, tip se može označiti ključna riječ var. U ovom slučaju, kompajler određuje tip varijable petlje na osnovu tipa elementa niza. Ovo može biti korisno za rad s određenim vrstama upita. Ali, po pravilu, tip je naveden eksplicitno.

Naredba foreach petlje radi na sljedeći način. Kada petlja započne, prvi element niza je odabran i dodijeljen varijabli petlje. U svakom sljedećem koraku iteracije odabiremo sljedeći element niz, koji je pohranjen u varijabli petlje. Petlja se završava kada se izaberu svi elementi niza.

Foreach petlja vam omogućava da iterirate kroz svaki element kolekcije (objekat koji predstavlja listu drugih objekata). Tehnički, da bi se nešto smatralo kolekcijom, mora podržavati IEnumerable interfejs. Primjeri kolekcija uključuju C# nizove, klase kolekcija iz imenskog prostora System.Collection i prilagođene klase kolekcija.

Gigabyte će ponuditi setove Z390 Aorus Xtreme WaterForce ploče i overclockani Core i9-9900K. Gigabyte će uskoro na tržište izbaciti komplete koji se sastoje od Z390 Aorus Xtreme WaterForce matične ploče i overclockane na 5.1 GHz procesor Intel Core i9-9900K (8 jezgara/16 niti, 3,6/5 GHz). Ovi setovi su prvenstveno

Samsung Galaxy A90 je prvi put testiran u Geekbench testu. 10. april Samsung kompanijaće održati svoju sljedeću prezentaciju, gdje će vjerovatno predstaviti niz pametnih telefona srednje cijene. Među njima bi trebao biti i Samsung Galaxy A90, koji je bukvalno upravo testiran

Na web stranici Slahsleaks, koja često objavljuje ekskluzivne fotografije novih mobilnih uređaja i pribor za njih, objavljen live photo prednji panel Nokia pametni telefon 8.1 Plus. Pametni telefon ima veoma uske okvire po obodu, malo širi okvir ispod ekrana,

Međunarodni tim naučnika je pokazao novi način pretvaranje svjetlosti koju emituje konvencionalni laser u takozvanu kvantnu svjetlost. Posebnost takve svjetlosti su identične kvantne osobine njenih fotona, koje do izražaja dolaze

U većini savremenih uređaja, počevši od najjednostavnijeg elektronski sat, koriste se posebne komponente, zvane generatori takta, koji, kada se na njih primijeni odgovarajući signal, počinju proizvoditi oscilacije sa strogo određenom frekvencijom. Više

Astronomi su otkrili 83 nove supermasivne crne rupe, čija je starost gotovo jednaka starosti dostupnog dijela Univerzuma. Identifikacija ovih crnih rupa i određivanje njihovih parametara izvršeno je analizom njihovog sjaja i spektra emisije. Oni

Google je najavio nova funkcija za slanje e-pošte na Gmail. Sada se može zakazati njihovo slanje pogodno vrijeme. Da biste zakazali pismo, potrebno je da kliknete na strelicu pored dugmeta „Pošalji“ i izaberete pravo vrijeme i datum otpreme, piše Chronicle.info pozivajući se na

Stručnjaci iFixita proučavali su dizajn tablet računar iPad mini nova generacija, koja Apple kompanija zvanično predstavljen prošlog mjeseca. Podsjećamo da je uređaj opremljen Retina ekran dijagonale 7,9 inča. Rezolucija je 2048 × 1536 piksela,

Vizio televizori i ekrani će dobiti podršku za AirPlay. Američki proizvođač potrošačka elektronika Vizio je ranije najavio podršku za AirPlay 2 i aplikaciju Home. Sada je postalo poznato da stručnjaci kompanije rade na aplikaciji SmartCast, kompatibilnoj sa AirPlay-om, piše Chronicle.info

Predstavljen BIOSTAR, vodeći svjetski proizvođač matičnih ploča, video kartica i uređaja za skladištenje podataka matična ploča A68MHE za masovnog korisnika. BIOSTAR A68MHE je opremljen AMD čipset A68H, koji podržava procesore AMD serija FM2+ Athlon™/A- i RAM

Najbolji članci na ovu temu