Kako postaviti pametne telefone i računala. Informativni portal

for and while petlje. for, while i do while petlje u C

do while i foreach petlje

napraviti petlju. . . dok

do...while petlja u C#, ovo je posttestna verzija while. To znači da se uvjet 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ći oblik operater do-while petlja:

do ( izjave; ) while (uvjet);

Sa samo jednim operaterom proteza unosi u ovom obliku nisu obavezni. 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 izvršava sve dok je uvjetni izraz istinit. Primjer korištenja do-while petlje je sljedeći program koji izračunava faktorijel broja:

Korištenje sustava; korištenje System.Collections.Generic; korištenjem 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 koristi se za kruženje kroz elemente kolekcije, koja je grupa objekata. C# definira nekoliko vrsta zbirki, od kojih je svaka niz. Slijedi opći oblik operatora foreach petlja:

foreach (tip loop_variable_name u zbirci) izjava;

Ovdje upišite ime_varijable petlje označava vrstu i ime kontrolna varijabla petlja koja dobiva vrijednost sljedećeg elementa kolekcije u svakom koraku foreach petlje. A zbirka znači ciklički ispitivana zbirka, koja je u nastavku 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, prevodilac određuje tip varijable petlje na temelju tipa elementa niza. Ovo može biti korisno za rješavanje određenih vrsta zahtjeva. Ali, u pravilu, tip je eksplicitno naveden.

Naredba foreach petlje funkcionira ovako. Kada petlja započne, odabire se prvi element niza i dodjeljuje se varijabli petlje. U svakom sljedećem koraku iteracije, sljedeći element niz koji je pohranjen u varijablu petlje. Petlja završava kada su odabrani svi elementi niza.

Foreach petlja omogućuje vam da prođete kroz svaki element zbirke (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.

Izjava petlje za generalizira poznatu konstrukciju ciklusa tipa aritmetičke progresije. Njegova sintaksa je:

za(inicijalizatori; uvjet; popis_izraza) operator

Naredba nakon završne zagrade definira tijelo petlje. U većini slučajeva tijelo petlje je blok. Postavljeni inicijalizatori početna vrijednost jedna ili više varijabli, koje se često nazivaju brojači ili jednostavno varijable petlje. Uvjet postavlja uvjet za kraj petlje, odgovarajući izraz, kada se evaluira, mora primiti vrijednost 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 se prekida. 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 prerano prekinuti petlju pomoću jedne od jump naredbi, brojači se deklariraju prije petlje, što vam omogućuje da analizirate njihove vrijednosti kada izađete iz petlje.

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

Ovdje se koriste dva brojača - jedan povećava, drugi opada. Evo teksta relevantnog postupka:

/// < Sažetak>
/// Definicija palindroma. Demo 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 uključena u sve programske jezike. Tijelo petlje se izvršava sve dok izraz ostaje istinit dok. U jeziku C# ova vrsta petlje ima dvije modifikacije – s provjerom uvjeta na početku i na kraju petlje. Prva izmjena ima sljedeću sintaksu:

while(izraz) izjava

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 sljedeći 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
while(izraz);

Navedimo primjer u kojem su uključene obje modifikacije ciklusa dok. U vanjskoj petlji provjera se obavlja na kraju, au unutarnjoj petlji provjerava se na početku. Vanjska petlja tipičan je 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 nastaviti s izračunima ili ne, ali barem jednom mora riješiti problem. unutarnja petlja činidok koristi se za rješavanje dobro poznatog problema s palindromima. Evo teksta relevantnog postupka:

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

5.6.3. forEach petlja

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

za svakoga(identifikator tipaukontejner) operater

Petlja radi točno onako kako joj naziv implicira - tijelo petlje se izvršava za svaki element u spremniku. Tip identifikatora mora odgovarati vrsti elemenata 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 utvrđenim na elementima spremnika. S ovim trenutnim elementom izvršava se tijelo petlje – ono se izvršava onoliko puta koliko ima elemenata u spremniku. Petlja završava kada su svi elementi spremnika potpuno ponovljeni. Ozbiljan nedostatak ciklusa za svakoga u jeziku C# je da petlja radi samo za čitanje, ali ne i za pisanje elemenata. Dakle, morate ispuniti spremnik elementima koristeći druge izraze petlje.

Primjer u nastavku pokazuje kako raditi s 3D poljem. Niz se stvara pomoću petlji poput za, a pri pronalaženju zbroja njegovih elemenata minimalni i maksimalna vrijednost koristi se petlja za svakoga:

/// < Sažetak>
/// Demo petljeza svakoga.
/// Izračunaj zbroj, maksimum i minimalni elementi
/// 3D niz ispunjen slučajnim brojevima.
///
public void SumMinMax(){
int[,] arr3d= novi int;
nasumični 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.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

za petlje i dok

C# ima četiri različite vrste petlje (for, while, do...while i foreach) koje vam omogućuju da više puta izvršavate blok koda sve dok se određeni uvjet ne zadovolji. U ovom članku ćemo se upoznati s for i while petljama.

za petlju

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

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

inicijalizator

je izraz koji se evaluira prije prvog izvršavanja tijela petlje (obično inicijalizacija lokalne varijable kao brojača petlje). Inicijalizacija je obično predstavljena operatorom dodjele koji specificira početna vrijednost varijabla koja djeluje kao brojač i kontrolira petlju;

stanje

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

iterator

izraz koji se evaluira 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 točkom i zarezom. Petlja for nastavit će se izvoditi sve dok test uvjeta procijeni istinito. Čim ovaj test ne uspije, petlja će završiti i program će nastaviti s naredbom koja slijedi nakon petlje for.

Vrijedi napomenuti da je for petlja izvrsna za ponavljanje iskaza ili bloka izraza poznati broj puta. razmotrimo praktična upotreba for petlja u sljedećem primjeru:

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

while petlja

kao za, dok je također ciklus sa preliminarna provjera. Njegova sintaksa je slična, ali while petlje uključuju samo jednu naredbu:

while(uvjet) izjava(e);

gdje operater je jedan iskaz ili blok iskaza, i stanje znači 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, programska kontrola se prenosi na redak koda odmah nakon petlje.

Kao i for petlja, petlja while 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.

Petlje se koriste za ponavljanje dijelova koda više puta. 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, u pomoć priskaču ciklusi. Petlje je prilično lako deklarirati u kodu, ali one rade izazovni zadaci, samo jednostavno ponavljanje.

Da biste započeli s petljama, provjerite jeste li dobro razumjeli koncept u programskom jeziku C. Zato što će biti od vitalnog značaja u korištenju ciklusa, jer u ciklusima kao iu postoje uvjetni izrazi. Postoje tri vrste petlji u C: for , while , do while . Svaki od njih ima svoje specifične namjene. Svi su oni 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 dodijelite vrijednost već 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 nastaviti 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 ovako 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 točke i zarezi i dalje moraju biti tamo. Ako uvjet nije prazan, tada se procjenjuje na istinito i petlja će se nastaviti 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 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. varijabli i dodjeljuje se nula, a dok je i manji od 10, vrijednost varijable i se ispisuje na ekran, nakon toga 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 izvršenje koda 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 booleovski izrazi. Evo primjera složenog uvjeta - x == 3 || x > 10, ovaj uvjet bit će istinit ako je x jednako 3 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 testirati 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 */ dok (var< 10) { /* пока значение переменной var меньше 10 */ printf("%d\n", var); var++; /* обновляем значение в переменной var(если этого не делать, то условие цикла всегда будет истинным, тогда цикл будет - бесконечным) */ } getchar(); }

Stoga smo pogledali još jedan primjer korištenja ciklusa, 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 se nastavlja izvoditi, a ako je uvjet netačan, tada petlja izlazi.

Postoji još jedna vrsta petlje - do while . Ova petlja je korisna kada trebate izvršiti kod barem- 1 put. Razmotrite njegovu strukturu:

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

Struktura je vrlo jednostavna, kao što možete vidjeti, uvjet je na kraju petlje, a uvjet će se provjeriti 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 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 potpuno 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 petlja do while prvo izvršava kod u tijelu petlje, a zatim provjerava uvjet, i ako je istina, onda nastavlja raditi. Primjer do while petlje prikazan je u nastavku:

#uključiti int main() ( int i = 0; do ( /* Ispiši poruku i izađi */ printf("Bok! Radim dok\n"); ) while (i != 0); getchar(); )

Obratite pažnju na točku i zarez na kraju petlje, uvijek biste trebali koristiti 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 na kraju, osim završne zagrade, ne stavljaju ništa. Imajte na umu da će se u gornjem primjeru ova petlja pokrenuti jednom jer se prvo ispisuje poruka, a zatim se provjerava uvjet petlje.

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

Samsung Galaxy A90 je prvi put testiran u Geekbench mjerilu. 10. travnja Samsung održat će svoju 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

Na Slahsleaksu, koji često objavljuje ekskluzivne fotografije novih Mobilni uredaji i pribor za njih, objavljen slika uživo Prednja ploča Nokia pametni telefon 8.1 plus. Smartfon je dobio vrlo uske okvire oko perimetra, malo širi okvir ispod zaslona,

Međunarodni tim znanstvenika je pokazao novi put pretvaranje svjetlosti koju emitira konvencionalni laser u takozvanu kvantnu svjetlost. Značajka takve svjetlosti su identična kvantna svojstva njezinih fotona, koja do izražaja dolaze

Najviše modernih 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 koje su stare gotovo koliko i dio svemira koji se može proučavati. Identifikacija ovih crnih rupa i određivanje njihovih parametara provedeno je analizom njihove svjetline i spektra emisije. Oni su

Google je najavio nova značajka za slanje e-pošte na Gmail. Sada se može zakazati njihovo slanje zgodno vrijeme. Da biste zakazali pismo, trebate kliknuti na strelicu pored gumba "Pošalji" i odabrati pravo vrijeme i datum otpreme, piše Kronika.info pozivajući se na

Stručnjaci iFixita proučavali su dizajn tableta iPad računalo mini novi generacija, koja Tvrtka Apple službeno pokrenut prošlog mjeseca. Uređaj je, podsjetimo, opremljen Retina zaslon dijagonala je 7,9 inča. Rezolucija je 2048 × 1536 točaka,

Vizio televizori i zasloni dobit će podršku za AirPlay. Američki proizvođač potrošačke elektronike Vizio je ranije 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čna ploča A68MHE za masovnog korisnika. BIOSTAR A68MHE je opremljen sa AMD čipset A68H koji podržava procesore AMD serija FM2+ Athlon™/A- i RAM

Vrhunski povezani članci