Kako postaviti pametne telefone i računala. Informativni portal

Napravite while i foreach petlje.

Petlje se koriste za ponavljanje dijelova koda iznova i iznova. Sposobnost ponavljanja određenih fragmenata koda jedan je od glavnih i ujedno važnih zadataka koje programer mora riješiti. Većina programa ili web-mjesta 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 je prilično jednostavno deklarirati u kodu, ali obavljaju složene zadatke samo jednostavnim ponavljanjem.

Da biste počeli učiti o petljama, provjerite jeste li dobro razumjeli koncept u programskom jeziku C. Zato što će biti od vitalnog značaja za korištenje petlji, jer u petljama kao i u postoje uvjetni izrazi. Postoje tri vrste petlji u jeziku C: for, while, do while. Svaki od njih ima svoje specifične primjene. Svi 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 omogućuje vam da deklarirate varijablu i dodijelite joj vrijednost ili da dodijelite vrijednost postojećoj varijabli. Drugo, vrijednost ove varijable govori programu je li uvjet petlje istinit ili netočan. I sve dok je uvjet petlje istinit, petlja se mora ponavljati. 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 = slučajni (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 točke i zareze i dalje trebale biti tamo. Ako uvjet nije prazan, tada se procjenjuje kao istinit i petlja će se izvršavati sve dok nešto ne učini uvjet petlje lažnim. Pogledajmo jednostavan primjer korištenja for petlje.

#uključiti int main () (int i; / * Petlja će se izvoditi sve dok 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. varijabli i dodjeljuje se nula, a dok je i manji od 10, vrijednosti varijable i se ispisuju na ekran, zatim se varijabli i dodaje jedan i sve se ponavlja dok uvjet ne postane laž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 njezine strukture:

Dok (/ * uvjet * /) (// tijelo petlje - ovdje je kod koji treba ponoviti)

Tijelo petlje počinje se izvršavati ako je uvjet petlje istinit. Uvjet je logički izraz kao što je x == 1 ili x! = 7 (x nije jednako 7). Odnosno, uvjet može biti apsolutno bilo što - bilo koja kombinacija logičkih izraza. Evo primjera složenog uvjeta - x == 3 || x> 10, ovaj uvjet ć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 promjenu kontrolirane varijable, tako da prije korištenja ove petlje morate prvo deklarirati varijablu koja će provjeriti u petlji uvjeta i promijeniti vrijednost ove varijable u tijelu petlje. Zapravo, pogledajmo jednostavan primjer koristeći while petlju:

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

Stoga smo pogledali još jedan primjer korištenja petlji, a kao što vidite, ni 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 uvjet i dalje istinit, petlja nastavlja raditi dalje, a ako je uvjet netačan, tada se izlazi iz petlje.

Postoji još jedna vrsta petlji - do while. Ova petlja je korisna kada trebate izvršiti kod barem - jednom. Razmotrimo njegovu strukturu:

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

Struktura je vrlo jednostavna, kao što vidite, uvjet se nalazi na kraju petlje, te će sukladno tome uvjet biti provjeren nakon što se izvrši kod u tijelu petlje. Imajte na umu da se uvjet provjerava na kraju petlje, a ne na početku, tako da će se blok koda u tijelu petlje izvršiti barem jednom. Ako je uvjet istinit, petlja se vraća na početak i ponovno ga izvršava. Do while petlja je gotovo ista kao i while petlja, osim što je zajamčeno da će se tijelo petlje izvršiti barem jednom. Dok petlja prvo provjerava uvjet, a zatim izvršava blok koda u tijelu, naravno, ako je uvjet istinit, dok do while prvo izvršava kod u tijelu petlje, a zatim provjerava uvjet, i ako istina je, onda nastavlja raditi... Primjer kako radi petlja dok radi prikazan je u nastavku:

#uključiti int main () (int i = 0; do (/ * Ispisuje poruku i izlazi iz * / printf ("Halo! Vrtim do while \ n");) while (i! = 0); getchar (); )

Obratite pažnju na točku sa zarezom na kraju petlje, uvijek koristite ovu točku i zarez kao u gornjem primjeru. Vrlo često se ova točka sa zarezom izostavlja, što rezultira pogreškom u kompilaciji. Samo ovaj ciklus završava točkom i zarezom, ostali ciklusi nemaju ništa na kraju, osim završne zagrade. Imajte na umu da će se u gornjem primjeru ova petlja izvršiti jednom, jer se prvo ispisuje poruka, a zatim se provjerava uvjet petlje.

Petlje za i while

Postoje četiri različite vrste petlji u C # (for, while, do ... while i foreach) koje vam omogućuju ponavljanje bloka koda dok se ne ispuni određeni uvjet. U ovom članku ćemo vas upoznati s for i while petljama.

Za petlju

Petlja for u C # pruža mehanizam iteracije u kojem se provjerava određeni uvjet prije izvođenja svake iteracije. Sintaksa za ovu izjavu prikazana je u nastavku:

za (inicijalizator; uvjet; iterator) operator(e)

inicijalizator

to je izraz koji se evaluira prije prvog izvođenja tijela petlje (obično inicijalizira lokalnu varijablu kao brojač petlje). Inicijalizacija je obično predstavljena operatorom dodjele koji postavlja početnu vrijednost varijable koja djeluje kao brojač i kontrolira petlju;

stanje

to je izraz koji se provjerava prije svake nove iteracije petlje (mora vratiti true za sljedeću iteraciju koja se izvodi);

iterator

izraz koji se evaluira nakon svake iteracije (obično povećava brojač petlje).

Imajte na umu da ova tri glavna dijela izraza petlje for moraju biti odvojena točkom i zarezom. Petlja for nastavit će se izvršavati sve dok test uvjeta daje pravi rezultat. Čim ovaj test da lažni rezultat, petlja će se prekinuti, a izvršavanje programa nastavit će se od naredbe koja slijedi nakon petlje for.

Vrijedi napomenuti da je for petlja izvrsna za ponovno izvođenje izraza ili bloka izraza za poznati broj puta. Pogledajmo praktičnu upotrebu for petlje na sljedećem primjeru:

Korištenje sustava; koristeći System.Collections.Generic; korištenjem System.Linq; koristeći System.Text; imenski prostor ConsoleApplication1 (klasa Program (// Ova metoda daje tablicu množenja // u bxb dimenzijama statička praznina kartica (bajt b)) (Console.WriteLine ("Tablica množenja (0) x (0) \ n", b); // Ova petlja ponavlja linije za (int i = 1; i

Dok petlja

kao za, dok je također petlja za prethodnu provjeru. Sintaksa je ista, ali while petlje uključuju samo jedan izraz:

dok (uvjet) operator (s);

gdje operater je jedan operator ili blok operatora, i stanje označava određeni uvjet kontrole petlje i može biti bilo koji Booleov izraz. U ovoj petlji naredba se izvršava sve dok je uvjet istinit. Čim uvjet postane lažan, kontrola programa se prenosi na redak koda odmah nakon petlje.

Kao i u for petlji, while petlja testira uvjetni izraz naveden 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 zasebna provjera prije same petlje.

Operator petlje za generalizira dobro poznatu konstrukciju petlje kao što je aritmetička progresija. Njegova sintaksa je:

za(inicijalizatori; uvjet; popis_izraza) operator

Operator nakon završne zagrade specificira 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 postavlja uvjet za kraj ciklusa, odgovarajući izraz mora dobiti vrijednost tijekom izračuna pravi ili lažno. Popis izraza odvojenih zarezima pokazuje kako se brojači petlje mijenjaju u svakom koraku izvršenja. Ako je uvjet petlje istinit, tada se izvršava tijelo petlje, zatim se mijenjaju vrijednosti brojača i uvjet se ponovno provjerava. Čim uvjet postane lažan, petlja završava svoj rad. U normalnoj situaciji, tijelo petlje se izvršava konačan broj puta. Brojači petlje često se deklariraju izravno u inicijalizatoru i, sukladno tome, varijable su lokalizirane u petlji.

U slučajevima kada je moguće prijevremeno prekinuti petlju pomoću jednog od operatora grananja, brojači se deklariraju prije petlje, što omogućuje analizu njihovih vrijednosti po izlasku iz petlje.

Kao primjer, razmotrite klasični problem: je li redak teksta palindrom. Da biste to riješili, ciklus za pristaje na najbolji način.

Ovdje se koriste dva brojača - jedan rastući, a drugi opadajući. Evo teksta odgovarajuće procedure:

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

5.6.2. Dok petlje

Ciklus dok(izraz) je univerzalna vrsta petlje koja je uključena u sve programske jezike. Tijelo petlje se izvršava sve dok izraz ostaje istinit dok. U C # ova vrsta petlje ima dvije modifikacije - s provjerom uvjeta na početku i na kraju petlje. Prva izmjena ima sljedeću sintaksu:

dok (izraz) iskaz

Ova modifikacija odgovara petlji s preduvjetom. Tijelo takve petlje možda se nikada neće izvršiti. U normalnoj situaciji, svako izvođenje tijela petlje je još jedan korak prema kraju petlje.

Petlja koja provjerava uvjet završetka na kraju odgovara petlji s postuvjetom. Tijelo takve petlje izvršava se barem jednom. Evo sintakse za ovu izmjenu:

čini
operater
dok (izraz);

Navedimo primjer u kojem su uključene obje modifikacije ciklusa dok. U vanjskoj petlji provjera se izvodi na kraju, a u unutarnjoj, na početku. Vanjska petlja tipičan je primjer organizacije obrazovnih programa, kada se određeni problem 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, hoće li nastaviti kalkulacije ili ne, ali barem jednom mora riješiti problem. Unutarnja petlja činidok koristi se za rješavanje već poznatog problema s palindromima. Evo teksta odgovarajuće procedure:

/// < Sažetak>
/// Dvije petlje: s provjerom na kraju i na početku.
/// Vanjska petlja je uzorak problema koji se može više puta riješiti.
/// Kraj ciklusa se određuje u dijalogu s korisnikom.
///
javna praznina petlja (){
// Početakpostupciniz odgovor, tekst;
čini{
// početak vanjske petlje
Konzola. WriteLine("Unesite riječ");
tekst= Console.ReadLine ();
int i= 0, j= tekst.Dužina- 1;
dok ja< j)&& (tekst [i]== tekst [j])) (
// interijeraciklus
ja ++; j--;
}
ako (tekst [i]== tekst [j]) Console.WriteLine (tekst+ " - topalindrom!");
else Console.WriteLine (tekst+ " - tonepalindrom!");
Console.WriteLine ("Nastavimo? (da ne) ");
odgovor= Console.ReadLine ();
} dok (odgovor== "Da");// krajvanjskiciklus
} // Petlja

5.6.3. ForEach petlja

Nova vrsta petlje, koja nije naslijeđena od C++, je petlja za svakoga, prikladan za rad s nizovima, zbirkama i drugim sličnim spremnicima podataka. Njegova sintaksa je:

za svakoga(identifikator tipaukontejner) operater

Petlja radi u potpunosti u skladu sa svojim imenom - tijelo petlje se izvršava za svaki element u spremniku. Vrsta identifikatora mora odgovarati vrsti stavki pohranjenih u spremniku podataka. Također se pretpostavlja da su elementi spremnika (niz, zbirka) poredani. U svakom koraku petlje, identifikator koji specificira trenutni element spremnika prima vrijednost sljedećeg elementa u skladu s redoslijedom postavljenim na elementima spremnika. Tijelo petlje se izvršava s ovim trenutnim elementom - izvršava se onoliko puta koliko ima elemenata u spremniku. Petlja završava kada su svi elementi spremnika potpuno nabrojeni. Ozbiljan nedostatak ciklusa za svakoga u C # je da petlja radi samo za čitanje, ali ne i za pisanje elemenata. Dakle, morate ispuniti spremnik elementima pomoću drugih operatora petlje.

Primjer u nastavku pokazuje rad s 3D poljem. Niz se stvara pomoću petlji poput za, a pri pronalaženju zbroja njegovih elemenata, minimalne i maksimalne vrijednosti, koristi se ciklus za svakoga:

/// < Sažetak>
/// Demonstracija petljeza svakoga.
/// Izračunajte zbroj, maksimum i minimum elemenata
/// trodimenzionalni niz ispunjen slučajnim brojevima.
///
javno poništenje SumMinMax (){
int [,] arr3d= novi int;
Slučajni rnd= novi Random ();
za (int i= 0; i< 10; ja ++)
za (int j= 0; j< 10; j ++)
za (int k= 0; k< 10; k ++)
arr3d= rnd.Sljedeći (100);
duga suma= 0;
int min= arr3d,maks= arr3d;
foreach (int stavka u arr3d){
iznos+= artikal;
ako (stavka> max) max= artikal;
inače ako (stavka< min) min= artikal;
}
Console.WriteLine ("zbroj= {0}, min= {1}, maks= {2}", zbroj, min, max);
} // SumMinMax

Napravite while i foreach petlje

Do petlja. ... ... dok

Učinite ... while petlju u C #, ovo je post-uvjetna verzija while. To znači da se uvjet petlje provjerava nakon što se izvrši tijelo petlje. Stoga, do ... while petlje su korisne u situacijama kada se blok naredbi mora izvršiti barem jednom. Sljedeći je opći oblik izraza do-while petlje:

učiniti (izjave;) while (uvjet);

Ako postoji samo jedna izjava, vitičaste zagrade nisu obavezne u ovoj notaciji. Međutim, često se koriste kako bi konstrukcija do-while bila čitljivija i ne bi se zamijenila s konstrukcijom while petlje. Do-while petlja se izvodi sve dok je uvjetni izraz istinit. Primjer korištenja do-while petlje je sljedeći program koji izračunava faktorijel broja:

Korištenje sustava; koristeći System.Collections.Generic; korištenjem System.Linq; koristeći System.Text; imenski prostor ConsoleApplication1 (klasa Program (statički void Main (args niza)) (pokušajte (// Izračunajte faktorijel int i, rezultat = 1, broj = 1; Console.WriteLine ("Unesite broj:"); i = int.Parse (Konzola .ReadLine ()); Console.Write ("\ n \ nFactorial (0) =", i); učini (rezultat * = num; num ++;) dok (broj

Foreach petlja

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

foreach (tip loop_variable_name u zbirci) operator;

Ovdje upišite naziv_varijable ciklusa označava tip i naziv kontrolne varijable petlje koja dobiva vrijednost sljedeće stavke u kolekciji u svakom koraku foreach petlje. Zbirka označava ciklički anketiranu kolekciju, koja je u daljnjem tekstu niz. Stoga, tip varijable petlje mora odgovarati tipu elementa niza. Osim toga, tip se može označiti ključnom riječi var. U ovom slučaju, prevodilac određuje tip varijable petlje na temelju tipa elementa niza. Ovo može biti korisno za rješavanje određenih vrsta upita. Ali, u pravilu, tip je eksplicitno naveden.

Izjava foreach petlje radi na sljedeći način. Kada petlja započne, odabire se prvi element niza i dodjeljuje se varijabli petlje. U svakom sljedećem koraku iteracije odabire se sljedeći element niza i pohranjuje u varijablu petlje. Petlja završava kada su odabrani svi elementi niza.

Foreach petlja omogućuje vam da prođete kroz svaku stavku u kolekciji (objekt koji predstavlja popis drugih objekata). Formalno, da bi se nešto smatralo kolekcijom, mora podržavati IEnumerable sučelje. Primjeri zbirki uključuju C # nizove, klase zbirke iz imenskog prostora System.Collection i prilagođene klase kolekcija.

Gigabyte će ponuditi komplete bazirane na Z390 Aorus Xtreme WaterForce ploči i overclockanom Core i9-9900K. Gigabyte će uskoro lansirati komplete s matične ploče Z390 Aorus Xtreme WaterForce i procesora Intel Core i9-9900K overclockanog na 5,1 GHz (8 jezgri / 16 niti, 3,6 / 5 GHz). Ovi kompleti su prvenstveno

Samsung Galaxy A90 je prvi put testiran u Geekbench benchmarku. Samsung će 10. travnja održati sljedeću prezentaciju na kojoj će zasigurno predstaviti niz pametnih telefona srednjeg ranga. Među njima bi trebao biti i Samsung Galaxy A90, koji je doslovno tek testiran

Web stranica Slahsleaks, koja često postavlja ekskluzivne fotografije novih mobilnih uređaja i dodataka za njih, objavila je živu fotografiju prednje ploče pametnog telefona Nokia 8.1 Plus. Smartfon je dobio vrlo uske okvire oko perimetra, malo širi okvir ispod zaslona,

Međunarodni tim znanstvenika demonstrirao je novi način pretvaranja svjetlosti emitirane iz konvencionalnog lasera u ono što je poznato kao kvantna svjetlost. Značajka takve svjetlosti su identična kvantna svojstva njezinih fotona, koja su istaknuta pomoću

Većina modernih uređaja, počevši od najjednostavnijih elektroničkih satova, koriste 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 dijela svemira koji je dostupan za proučavanje. Identifikacija ovih crnih rupa i određivanje njihovih parametara provedeni su analizom njihove svjetline i spektra emisije. Oni

Google je najavio novu značajku za slanje e-pošte na Gmail. Sada se njihova otprema može zakazati u prikladno vrijeme. Za planiranje pisma potrebno je kliknuti na strelicu pored gumba "Pošalji" i odabrati željeno vrijeme i datum slanja, piše Chronicle.info uz poveznicu na

IFixit je proučio dizajn nove generacije iPad mini, koji je Apple službeno predstavio prošlog mjeseca. Uređaj je, podsjetimo, opremljen Retina zaslonom dijagonale 7,9 inča. Rezolucija je 2048 × 1536 piksela,

Vizio televizori i zasloni dobit će podršku za AirPlay. Američki proizvođač potrošačke elektronike Vizio ranije je najavio podršku za AirPlay 2 i aplikaciju Home. Sada je postalo poznato da stručnjaci tvrtke rade na aplikaciji SmartCast kompatibilnoj s AirPlayom.

BIOSTAR, vodeći svjetski proizvođač matičnih ploča, grafičkih kartica i uređaja za pohranu podataka, predstavio je matičnu ploču A68MHE za mainstream. BIOSTAR A68MHE pokreće AMD A68H čipset, koji podržava AMD FM2 + Athlon™ / A- seriju procesora i RAM-a

Vrhunski povezani članci