Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Javascript while, do-while i for petlje. Naredba za odabir if u C

Javascript while, do-while i for petlje. Naredba za odabir if u C

Drugi korak u kreiranju punopravnih programa na jeziku MatLab je proučavanje operatora grananja i petlje. Uz njihovu pomoć možete implementirati logiku izvršavanja matematičkih algoritama i kreirati ponavljajuća (iterativne, rekurentne) proračune.

2.1. Uslovna izjava if

Da bi se logika mogla implementirati u program, koriste se uvjetni operatori. Konceptualno, ovi operatori se mogu predstaviti kao čvorne tačke, dostižući koje program bira u kom od mogućih pravaca da se kreće dalje. Na primjer, trebate odrediti da li neka varijabla arg sadrži pozitivan ili negativan broj i prikazati odgovarajuću poruku na ekranu. Da biste to učinili, možete koristiti if naredbu (if), koja obavlja slične provjere.

U najjednostavnijem slučaju, sintaksa za ovu if naredbu je:

ako<выражение>
<операторы>
kraj

Ako se vrijednost parametra "expression" poklapa sa vrijednošću "true", tada se naredba izvršava, u suprotnom je program preskače. Treba napomenuti da je "izraz" uslovni izraz u kojem se provjerava neki uvjet. Table 2.1 predstavlja varijante jednostavnih logičkih izraza if naredbe.

Tabela 2.1. Jednostavni logički izrazi

Tačno ako je a manje od b i netačno u suprotnom.

Tačno ako je a veće od b i netačno u suprotnom.

Tačno ako je a jednako b i netačno u suprotnom.

Tačno ako je a manje ili jednako b i netačno u suprotnom.

Tačno ako je varijabla a veća ili jednaka varijabli b i netočno u suprotnom.

Tačno ako a nije jednako b i netačno u suprotnom.

Ispod je primjer implementacije funkcije sign () koja vraća +1 ako je broj veći od nule, -1 ako je broj manji od nule i 0 ako je broj nula:

funkcija my_sign
x = 5;
ako je x> 0
disp (1);
kraj
ako je x< 0
disp (-1);
kraj
ako je x == 0
disp (0);
kraj

Analiza datog primjera pokazuje da se sva ova tri uslova međusobno isključuju, tj. kada se jedan od njih aktivira, nema potrebe provjeravati ostale. Implementacija upravo takve logike će povećati brzinu izvršavanja programa. To se može postići korištenjem konstrukcije

ako<выражение>
<операторы1>% su ispunjeni ako je uslov tačan
ostalo
<операторы2>% su ispunjeni ako je uslov netačan
kraj

Tada se gornji primjer može napisati ovako:

funkcija my_sign
x = 5;
ako je x> 0
disp (1);
ostalo
ako je x< 0
disp (-1);
ostalo
disp (0);
kraj
kraj

Ovaj program prvo proverava pozitivnost varijable x, i ako jeste, onda se na ekranu prikazuje vrednost 1, a svi ostali uslovi se zanemaruju. Ako se pokaže da je prvi uslov netačan, tada se izvršavanje programa nastavlja na drugi način (inače) do drugog uslova, gdje se varijabla x testira na negativnost, a ako je uvjet istinit, vrijednost -1 se prikazuje na ekran. Ako su oba uslova netačna, tada se prikazuje vrijednost 0.

Gornji primjer se može napisati u jednostavnijem obliku koristeći još jednu konstrukciju if operatora MatLab jezika:

ako<выражение1>
<операторы1>% se izvršavaju ako je izraz1 istinit
elseif<выражение2>
<операторы2>% se izvršavaju ako je izraz2 istinit
...
elseif<выражениеN>
<операторыN>% se izvršavaju ako je izrazN istinit
kraj

i piše se kako slijedi:

funkcija my_sign
x = 5;
ako je x> 0
disp (1); % se izvršava ako je x> 0
elseif x< 0
disp (-1); % se izvršava ako je x< 0
ostalo
disp (0); % se izvršava ako je x = 0
kraj

Sa uslovnom if naredbom, možete testirati složenije (složene) uslove. Na primjer, trebate odrediti: da li varijabla x spada u raspon vrijednosti od 0 do 2? Ovo se može implementirati istovremenom provjerom dva uslova odjednom: x> = 0 i x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Za implementaciju složenih uslova u MatLab-u, koriste se logički operatori:

& - logično I
| - logičko ILI
~ - logično NE

Pogledajmo primjer korištenja složenih uslova. Pretpostavimo da je potrebno provjeriti da li je varijabla x u rasponu od 0 do 2. Program će biti napisan na sljedeći način:

funkcija my_if
x = 1;
ako je x> = 0 & x<= 2
ostalo
disp ("x ne pripada opsegu od 0 do 2");
kraj

U drugom primjeru provjerit ćemo da varijabla x ne pripada rasponu od 0 do 2. To se postiže aktiviranjem jednog od dva uslova: x< 0 или x > 2:

funkcija my_if
x = 1;
ako je x< 0 | x > 2
disp ("x ne pripada opsegu od 0 do 2");
ostalo
disp ("x pripada rasponu od 0 do 2");
kraj

Koristeći logičke operatore AND, OR, NOT, možete kreirati različite složene uslove. Na primjer, možete provjeriti da li varijabla x spada u raspon od -5 do 5, ali ne pripada rasponu od 0 do 1. Očigledno, ovo se može implementirati na sljedeći način:

funkcija my_if
x = 1;
ako (x> = -5 & x<= 5) & (x < 0 | x > 1)
disp ("x pripada [-5, 5], ali nije uključen");
ostalo
disp ("x ili nije uključeno u [-5, 5] ili u");
kraj

Imajte na umu da su zagrade korištene u složenom složenom stanju. Činjenica je da je prioritet operacije AND veći od prioriteta operacije ILI, a da nema zagrada, uslov bi izgledao ovako: (x> = -5 i x<= 5 и x < 0) или x >1. Očigledno je da bi takva provjera dala drugačiji rezultat od očekivanog.

Zagrade se koriste u programiranju za promjenu prioriteta iskaza. Kao i aritmetički operatori, i logički operatori se mogu mijenjati po volji programera. Korištenjem zagrada provjera se prvo vrši unutar njih, a zatim izvan njih. Zbog toga su, u gornjem primjeru, potrebni za postizanje željenog rezultata.

Prioritet logičkih operacija je sljedeći:

NOT (~) je najviši prioritet;
I (&) - srednji prioritet;
ILI (|) je najniži prioritet.

Mogućnost kontrole toka programa omogućava vam da selektivno izvršavate pojedinačne dijelove koda, a ovo je vrlo vrijedna značajka programiranja. Naredba if nam omogućava da izvršimo ili ne izvršimo određene dijelove koda, ovisno o tome da li je uvjet ove izjave istinit ili netačan. Jedna od najvažnijih upotreba naredbe if select je da dozvoljava programu da preduzme akciju po svom izboru na osnovu onoga što je korisnik uneo. Trivijalan primjer korištenja if je za provjeru lozinke koju je unio korisnik, ako je lozinka ispravna, program dozvoljava korisniku da izvrši neku radnju, ako je lozinka unesena pogrešno, tada program neće dozvoliti korisniku pristup ograničenom resurse.

Bez uslovnog izraza, program bi se izvodio na isti način iznova i iznova, bez obzira na to koji unos dolazi od korisnika. Ako koristite operatore odabira, onda rezultat programa može biti mnogo zanimljiviji, jer će ovisiti direktno o unosu korisnika.

Prije nego počnete razumjeti strukturu if naredbe, vrijedno je obratiti pažnju na vrijednosti kao što su TRUE i FALSE u kontekstu programiranja i računalne terminologije.

Tačno (TRUE) ima vrijednost različitu od nule, FALSE je ekvivalent nuli. Kada koristite operatore poređenja, operator će vratiti jedan ako je izraz za usporedbu istinit, ili - 0 ako je uvjetni izraz netačan. Na primjer, izraz 3 == 2 će vratiti 0 jer tri nije jednako dva. Izraz 5 == 5 daje vrijednost istinitom i vraća 1. Ako vam je teško razumjeti, pokušajte odštampati ove izraze na ekran, na primjer: printf ("% d", 7 == 0);

U procesu programiranja često je potrebno uporediti jednu varijablu s drugom i na osnovu tih poređenja kontrolisati tok programa. Postoji čitav spisak operatora koji omogućava poređenje, evo ga:

Najvjerovatnije ste upoznati sa ovim operatorima poređenja, ali za svaki slučaj sam ih pokazao u gornjoj tabeli. Ne bi vam trebalo biti teško razumjeti ih, većinu ovih operatora ste naučili u školi na časovima matematike. Sada kada ste shvatili šta su TRUE i FALSE, vrijeme je da isprobate if select naredbu u borbi. Ako struktura:

If (uvjetni izraz) // ovdje postoji jedna naredba, koja će se izvršiti ako je uvjetni izraz istinit

Evo jednostavnog primjera korištenja if naredbe:

Ako (7> 6) printf ("Sedam je veće od šest");

U ovom primjeru, program procjenjuje uslovni izraz - "Da li je sedam veće od šest?" Da biste vidjeli rezultat ovog dijela koda, samo ga zalijepite u funkciju main () i ne zaboravite uključiti zaglavlje stdio.h, pokrenite program i vidite rezultat - istina. Konstrukcija operatora select if sa vitičastim zagradama:

Ako (TRUE) (/ * sav kod koji je stavljen unutar zagrada će biti izvršen * /)

Ako ne koristite vitičaste zagrade, tada će se samo jedna, prva, naredba odnositi na tijelo if naredbe. Ako trebate kontrolirati nekoliko operatora, onda ih trebate staviti u vitičaste zagrade. Preporučujem da uvijek stavite zagrade nakon deklaracije if - ovo je dobar stil programiranja i nikada se nećete zbuniti u svom kodu, jer je takva deklaracija najrazumljivija.

Druga izjava

Ponekad, kada je uslovni izraz lažan, bilo bi zgodno da se izvrši neki kod koji se razlikuje od koda koji se izvršava kada je uslov TRUE. Kako se to radi?
Evo primjera korištenja if else naredbe:

If (TRUE) (/ * ovaj kod se izvršava ako je uslov tačan * /) inače (/ * ovaj kod se izvršava ako je uslov netačan * /)

Else if izjava

Obično, else if iskazi se koriste kada je potreban višestruki izbor, to jest, na primjer, definirano je nekoliko uvjeta koji mogu biti istiniti u isto vrijeme, ali nam je potreban samo jedan istiniti uslovni izraz. Naredbu if else možete koristiti odmah nakon naredbe za odabir if, nakon njenog tijela. U ovom slučaju, ako je uvjet prve naredbe za odabir TRUE, onda će se naredba else if zanemariti, dok će u suprotnom, ako je uvjet prve naredbe odabira FALSE, provjerava se naredba else if. Odnosno, ako je uslov jednog if iskaza tačan, onda se ostali neće provjeravati. Sada, da biste sve ovo dobro fiksirali u svojoj glavi i razumjeli, pogledajmo jednostavan primjer koristeći konstrukcije operatora odabira.

#include #include int main () (int age; // bez varijable ... printf ("Koliko imaš godina?"); // pitaj korisnika o njegovoj starosti scanf ("% d", & age); // korisnik unosi broj godina ako (starost< 100) { // если введенный возраст меньше 100 printf ("Вы очень молоды!\n"); // просто показываем что программа сработала верно... } else if (age == 100) { // используем else для примера printf("Молодость уже позади\n"); // \n - символ перевода на новую строку. } else { printf("Столько не живут\n"); // если ни одно из выше-перечисленных условий не подошло, то программа покажет этот вариант ответа } return 0; }

Hajde da pogledamo zanimljive uslovne izraze koristeći logičke operatore.

Logički operatori vam omogućavaju da kreirate složenije uslovne izraze. Na primjer, ako želite provjeriti da li je vaša varijabla veća od 0, ali manja od 10, onda samo trebate koristiti logički operator - AND. Ovako se to radi - var> 0 i var< 10 . В языке СИ есть точно такой же же оператор, только обозначается он иначе — && .
Kada koristite if naredbe, često je potrebno provjeriti nekoliko različitih uslova, tako da je vrlo važno razumjeti logičke operatore OR, NOT i AND. Logički operatori rade na isti način kao i operatori poređenja: vraćaju 0 ako su lažni ili 1 ako je logički izraz istinit.
Više o logičkim operacijama možete pročitati u.

U ovom članku nastavit ćemo istraživati PHP osnove i razgovarati o petljama i uslovima. Prvi korak je razmatranje konstrukcije IF - ELSE, koja vam omogućava da izvršite određene radnje u zavisnosti od toga da li je uslov ispunjen ili ne. Zatim ćemo preći na gledanje petlji. Ukupno će se razmatrati tri konstrukcije petlje - to su WHILE, DO - WHILE petlje i FOR petlje.

PHP osnove. IF - ELSE konstrukcije

Konstrukcija IF - ELSE vam omogućava da izvršite određene radnje u zavisnosti od toga da li su uslovi ispunjeni ili ne. Ova konstrukcija se može široko koristiti u praksi, na primjer, za kreiranje jednostavne zaštite dijela stranice lozinkom. Ako korisnik unese ispravnu lozinku, tada mu se daje pristup privatnom dijelu. U suprotnom, možemo mu dati, na primjer, poruku o grešci.

U praksi, IF - ELSE konstrukcija izgleda ovako:

Pa hajde da komentarišemo. Varijablama se prvo dodjeljuju vrijednosti. Tada se postavlja uslov. Ako je varijabla $ a jednaka varijabli $ b, onda se izvršava kod koji se nalazi u prvim vitičastim zagradama. Ako uvjet nije ispunjen, tada se preskače sve u prvim vitičastim zagradama i izvršava se kod koji se nalazi u vitičastim zagradama nakon ELSE. Kao što vidite, sve je banalno, jednostavno i razumljivo.

Pored jednostavnih uslova u PHP-u, možete koristiti nekoliko uslova i IF - ELSE naredbe. Pogledajmo sljedeći kod kao primjer:

"; if ($ e! = $ c) (echo" Varijabla E nije jednaka varijabli C
";) else (echo" Varijabla E je jednaka varijabli C
";)) else (echo" Varijable nisu jednake
"; } ?>

Prvo, dodjeljujemo određene vrijednosti varijablama. Zatim postoje ugniježđene konstrukcije IF - ELSE. Kao što možete vidjeti u PHP-u, svaka konstrukcija IF - ELSE može sadržavati druge slične konstrukcije, čiji broj, u principu, nije ograničen.

Pogledajmo sada znakove koji se koriste u uslovima.

  • == - u PHP-u ovaj znak znači jednaki... Znak "=" u PHP-u je znak za dodjelu.
  • != nije jednako, na primjer, $ a! = $ b - varijabla $ a nije jednaka varijabli $ b.
  • i ili &&- zla I, na primjer, $ a! = $ b && $ c! = $ d - varijabla $ a nije jednaka varijabli $ b i varijabla $ c nije jednaka varijabli $ d.
  • ili ili ||- zla ILI, na primjer, $ a! = $ b || $ c! = $ d - varijabla $ a nije jednaka varijabli $ b ili varijabla $ c nije jednaka varijabli $ d.

Dakle, shvatili smo tumačenje svih znakova. Pređimo sada na čitanje gornjeg koda, koji se riječima može sažeti na sljedeći način:

Ako je varijabla $ a jednaka varijabli $ b, a varijabla $ c je jednaka varijabli $ d ili je varijabla $ e jednaka varijabli $ d, tada prikazujemo poruku "Varijable su jednake" i pravimo a prelom reda. Zatim radimo još jednu provjeru. Ako varijabla $ e nije jednaka varijabli $ c, tada prikazujemo poruku "Varijabla E nije jednaka varijabli C" i pravimo prijelom reda. Ako uslov nije ispunjen, onda se ispisuje "Varijabla E je jednaka varijabli C". Ako prvi uslov nije ispunjen, tada se sav kod u prvim vitičastim zagradama preskače i odmah se prikazuje poruka "Varijable nisu jednake" i pravi se prijelom reda (oznaka
).

Ovim završavamo naše razmatranje konstrukcije IF - ELSE. Nadam se da ste razumjeli cijelu poentu gore navedenog i da idemo na dalje proučavanje. PHP osnove- proučavanje ciklusa.

PHP osnove. WHILE i DO - WHILE petlje

Petlje u PHP-u su veoma rasprostranjene, jer vam omogućavaju da implementirate mnoge funkcije koje su prisutne na svakom dinamičkom sajtu. Jedan od najčešćih zadataka koji se može riješiti korištenjem petlji je, na primjer, prikazivanje najnovijih vijesti na web stranici. Cijela svrha petlji je izvođenje određene radnje sve dok je uvjet ispunjen. Na primjer, riješimo problem izračunavanja zbira brojeva od jedan do 10. U ovom slučaju broj brojeva može biti bilo koji, ali kao primjer uzmimo broj 10, jer će u ovom slučaju biti lakše provjerite rezultat.

Za rješavanje ovog problema će se koristiti WHILE ciklus... Kod za izračunavanje zbira brojeva od jedan do deset bit će sljedeći:

Prvo postavljamo varijable $ s (zbir) i $ i (brojač) i dodjeljujemo im vrijednosti. Zatim pišemo WHILE petlju, u čijem uslovu označavamo da petlju treba izvršiti sve dok varijabla $ i (brojač) ne bude manja ili jednaka 10. U tijelo petlje upisujemo vrijednost varijable $ s i povećajte brojač $ i za jedan. Ovo se radi pomoću dva znaka + ($ i ++) ili jednostavnim dodavanjem jednog ($ i = $ i + 1). Vrijednost brojača mora biti promijenjena bez propusta kako bi se izbjeglo ponavljanje (beskonačno izvršavanje petlje).

Sada pogledajmo kako se program izvršava. Prvo, dodjeljujemo vrijednost varijablama. Tada se uvjet provjerava u petlji. Ako se izvrši, onda se izvršava kod koji se nalazi u tijelu petlje (u vitičastim zagradama). Nakon izvršenja tijela petlje i povećanja vrijednosti brojača, uvjet se ponovo provjerava i, ako je zadovoljen, petlja se ponovo ponavlja. Petlja će se ponavljati sve dok je uslov ispunjen. Nakon pokretanja petlje, rezultat se prikazuje pomoću Echo izlazne izjave. Više detalja o varijablama i izlaznim operatorima možete pronaći u članku "".

Petlja DO - WHILE radi na isti način. Jedina razlika je u tome što se provjera uvjeta izvodi nakon što je petlja završena. Dakle, izvršenje ciklusa će se u svakom slučaju dogoditi barem jednom. U praksi, DO - WHILE petlja izgleda ovako:

Kao što vidite, u rješavanju problema izračunavanja zbira brojeva od jedan do deset pomoću DO - WHILE petlje, prvo dodjeljujete vrijednosti varijablama. Zatim se izvršava kod i povećava vrijednost brojača, a tek nakon toga se provjerava uvjet. Ako se izvrši, onda se ciklus ponovo ponavlja. U suprotnom, rezultat se ispisuje na ekran koristeći izlaznu izjavu.

PHP osnove. FOR petlja

Sa petljom FOR, možete raditi sve iste stvari kao i sa WHILE petljom. Koristi se i pri kreiranju sajtova, ali, po mom mišljenju, u manjoj meri od petlje WHILE. Ja lično preferiram ovo drugo, ali u okviru ovog članka ćemo se osvrnuti i na petlju FOR, pošto je ona dio PHP jezika i morate je znati.

Pogledajmo kako riješiti prethodni problem korištenjem FOR petlje. Kod za izračunavanje zbira brojeva od jedan do deset koristeći FOR petlju bi izgledao ovako:

Kao što vidite, sintaksa za petlju FOR je sljedeća. Prvo se inicijaliziraju varijable, zatim se naznačuje uvjet, nakon čega se ukazuje na radnju koju treba izvršiti nakon prolaska jednog ciklusa. Šematski, to će izgledati otprilike ovako:

For (inicijalizacija; stanje; akcija nakon izvršenja jedne petlje) (Tijelo petlje (akcija))

Kao što možete vidjeti PHP sintaksa slična sintaksi C ++. Ako ste učili C ++, onda će vam biti lakše naučiti PHP. Ali čak i ako ranije niste učili druge programske jezike, lako možete savladati osnove PHP-a, jer je to jedan od najjednostavnijih programskih jezika.

Time je ovaj članak o osnovama PHP-a završen. Ako vam se dopao moj stil pisanja članaka i sam njihov sadržaj, možete se pretplatiti na vijesti sa stranice na bilo koji način koji vam odgovara u stavci "Pretplata".

To je sve. Sretno i vidimo se uskoro na stranicama bloga.

C ++ pruža standardni skup operatora za odabir selekcije i ciklusa.

Ključne riječi koje se odnose na konstrukciju uslova grananja za kod su:

  • prekidač
  • break
  • default

Ključne riječi koje se odnose na konstrukciju ciklusa su:

  • dok
  • break
  • nastaviti

Izjave o stanju

Naredba If

Konstrukt uslova koji koristi if naredbu se formira na sledeći način:

Int x = 56; bool check_x () (ako (x> 0) vrati true; vrati false;)

U ovom slučaju, uvjet se stavlja u zagrade nakon if naredbe. U ovoj konstrukciji, povratni kod je istinit; Izvršiće se ako je x veći od 0. sljedeći red vraća false; Više se ne odnosi na kod koji će se izvršiti kada se ispuni uvjet. U konstrukcijama uslova, ako je ovaj uslov ispunjen, izvršiće se samo jedan red koda ako kod nije uokviren vitičastim zagradama, odnosno ako telo koda koji se izvršava pod uslovom nije formirano. Razmotrimo dvije varijante koda:

Prva opcija:

Int x = 56; bool check_x () (ako je (x> 0) x = 0; vrati tačno; vrati netačno;)

U ovom kodu, vratite true; Uvek će se izvršavati, jer je samo string x = 0 relevantan za kod koji se izvršava;

druga opcija:

Int x = 56; bool check_x () (ako je (x> 0) (x = 0; vrati istinito;) vrati false;)

U ovom kodu, vratite true; Biće zadovoljen samo ako je uslov x> 0 zadovoljen.

Druga izjava

The ostalo izjava se koristi u sprezi sa ako izjava da formira niz uslova.

Int x = 56; bool check_x () (ako (x> 0) (x = 0; vrati true;) inače ako (x< 0) { x = 0; return false; } else { return false; } }

Naredba else može se koristiti za dodavanje novog uvjeta ako prethodni uvjet, else if izraz, ne uspije. I kao konačni kod u nizu uslova, ako prethodni uslovi nisu bili ispunjeni. Alternativno, moguće je koristiti zagrade za tijelo koda ako kod stane u jedan red.

Izjave switch, case, break, default

The kućište prekidača konstrukcija se koristi za odabir grananja koda, u čijem se stanju vrši izbor po cjelobrojnim vrijednostima. To znači da se velika i mala slova prekidača mogu koristiti samo za cjelobrojne vrijednosti, nabrajanja i odabire pomoću koda simbola.

Int x = 100; bool check_x () (prekidač (x) (slučaj 0: vrati istinito; slučaj 50: x = 0: prekid; slučaj 100: vrati netačno; zadano: vrati netačno;)

U gornjem kodu provjerava se da je varijabla x jednaka brojevima 0, 50, 100. Podrazumevani operator bira kod koji se izvršava ako nijedan od uslova nije ispunjen. Imajte na umu i da u bloku koda sa slučajem 50: dodana izjava break, ova naredba izlazi iz uvjeta, dok naredba return izlazi iz funkcije. Ako ne dodate naredbu break, izvršavanje koda će se nastaviti u slučaju 100 :. Zbog ove posebnosti konstrukcije kućišta prekidača, moguće je kombinovati uslove za koje je potrebno izvršiti isti kod. Na primjer:

Int x = 100; bool check_x () (prekidač (x) (slučaj 0: slučaj 50: slučaj 100: vrati istinito; zadano: vrati netačno;))

Dakle, za x jednako 0, 50, 100, funkcija vraća true, dok za sve ostale vrijednosti funkcija vraća false.

Takođe, kod za odabir velikih i malih slova u ovoj konstrukciji može biti umotan u blokove koda, što će ograničiti opseg i koristiti deklaracije varijabli sa istim imenom.

Int x = 100; int check_x () (prekidač (x) (slučaj 0: (int y = 1; povratak y;) slučaj 50: (int y = 2; povratak y;) slučaj 100: (int y = 3; povratak y;) default : vrati x;))

Stoga, ograničavanjem opsega, možemo koristiti varijable s istim imenima u slučajevima. Ali nemojte zaboraviti da izvan opsega, ograničena vitičastim zagradama, varijabla y u ovom slučaju neće postojati.

Operatori ciklusa

Izjava while

Naredba while ponavlja kod u svom tijelu sve dok je uvjet ispunjen. Na primjer:

Int i = 0; dok (i< 10) { i = i + 1; }

U ovom kodu ću biti 10 nakon petlje.

Izjava do

Naredba do se koristi zajedno sa naredbom while i dozvoljava da se tijelo petlje izvrši barem jednom, prije nego što se provjeri uvjet petlje. Na primjer:

Int i = 15; do (i = i - 5; std :: cout<< i << std::endl; } while (i >0 && i< 13);

U ovom kodu, varijabla I se u početku ne poklapa sa uslovom i u uobičajenoj while petlji kod tijela petlje nije izvršen, ali pošto se koristi do-while petlja, test će biti izveden nakon što je tijelo petlje izvršeno. Kao rezultat, izlaz std :: cout je:

Možete pitati, zašto je 0 u izlazu? Ne odgovara stanju. Opet, zbog činjenice da se provjera vrši nakon što se kod izvrši u tijelu petlje. To jest, tijelo petlje je izvršeno, a zatim se vrši provjera čiji rezultat ciklus završava svoj rad.

Izjava o prekidu

Kao iu slučaju prekidača, ova izjava se može koristiti u petljama. Ovo je neophodno da bi se izašlo iz petlje, pre nego što se ispuni uslov ciklusa. Na primjer:

Int i = 15; dok (i< 50) { if (i < 0) { break; } i = i - 5; }

U ovom umjetnom primjeru, rezultirao bi vječni ciklus jer se varijabla i smanjuje umjesto povećanja, a prema uvjetu petlje, izlaz će biti proizveden samo ako je i veći od 50. Ali zahvaljujući naredbi break i uvjetu testa za negativnu vrijednost varijable i Izvršenje programa će izaći iz ove petlje čim i postane manje od 0.

Izjava o nastavku

Ovaj operator vam omogućava da prekinete iteraciju petlje i započnete novu iteraciju petlje prije nego što izvršite sav kod u tijelu petlje. Na primjer:

Int i = 0; dok (i< 5) { if (i == 3) { i = i + 1; continue; } std::cout << i << std::endl; i = i + 1; }

Prilikom izvršavanja ovog koda dobijamo sljedeći izlaz:

To jest, izlaz broja 3 će biti izostavljen.

Izjava za

Petlje sa for naredbom vam omogućavaju da kombinujete inicijalizaciju varijabli, uslov i promjenu ovih varijabli.

To jest, sljedeća while petlja

Int i = 0; dok (i< 10) {

To će biti ekvivalentno sljedećem for petlji:

Za (int i = 0; i< 10; i++) { // ToDo Something }

Prednost ove for petlje će biti u tome što će varijabla I biti u lokalnom opsegu for petlje.

For petlje se mogu inicijalizirati s nekoliko varijabli istog tipa. Na primjer:

Za (int i = 0, * p = i< 9; i += 2) { std::cout << i << ":" << *p << " "; }

Takođe, uslov može biti deklaracija, inicijalizacija varijable. Na primjer:

Char cstr = "Zdravo"; for (int n = 0; char c = cstr [n]; ++ n) (std :: cout<< c; }

S obzirom na C++ standard 11, auto varijabla se može koristiti kao tip varijable, što vam omogućava da ispišete tip varijable iz inicijalizatora:

Std :: vektor v = (3, 1, 4, 1, 5, 9); for (auto iter = v.begin (); iter! = v.end (); ++ iter) (std :: cout<< *iter << " "; }

Također zanimljiva stvar je da inicijalizator, uvjet i blok promjene mogu biti izraz:

Int n = 0; za (std :: cout<< "Loop start\n"; std::cout << "Loop test\n"; std::cout << "Iteration " << ++n << "\n") { if(n >1) prekid; )

Počevši od standarda C ++ 11, za petlje je dodana iteracija za kontejnere koji podržavaju iteraciju. Na primjer, vektorski kontejner iz standardne biblioteke:

Std :: vektor v = (0, 1, 2, 3, 4, 5); for (const int & i: v) std :: cout<< i << " ";

U ovom kodu, konstrukcija petlje je sljedeća:

Za (Preuzeto iz kontejnera pri svakoj iteraciji objekta: kontejner) (// Tijelo ciklusa)

Također, petlje zasnovane na rasponu podržavaju naredbu auto. Na primjer:

Std :: vektor v = (0, 1, 2, 3, 4, 5); for (auto & i: v) std :: cout<< i << " ";

Lekcija govori o uslovnom operatoru u Pascalu ( ako). Objašnjava kako koristiti više uslova u jednoj konstrukciji ( I i ILI). Razmatraju se primjeri rada sa operaterom

Podsjećamo vas da ova stranica ne tvrdi da predstavlja potpunu prezentaciju informacija o ovoj temi. Svrha portala je da pruži mogućnost asimilacije gradiva na osnovu gotovih riješenih primjera na temu „Programski jezik Pascal“ sa praktičnim zadacima za konsolidaciju gradiva. Pascal zadaci predstavljeni na sajtu su poređani uzastopno kako se njihova složenost povećava. Stranicu mogu koristiti nastavnici i nastavnici kao pomoćno vizuelno pomagalo.

Prije razmatranja ove teme, uglavnom su korišteni linearni algoritmi u Pascalu, koji su tipični za vrlo jednostavne zadatke kada se akcije (operatori) izvode sekvencijalno, jedna za drugom. Složeniji algoritmi uključuju upotrebu konstrukcije grananja.

Blok dijagram uslovnog operatora:

Pascal uslovni operator ima sledeću sintaksu:

Skraćena verzija:

if uslov onda izjava;

Puna verzija:

if uslov onda naredba else naredba;

Uslovni operator u Pascalu - if - služi da organizuje napredak zadatka na takav način da se redosled izvršavanja naredbi menja u zavisnosti od bilo kog logičkog uslova. Logički uslov može imati jednu od dvije vrijednosti: ili istinito (tačno) ili netačno (netačno), odnosno, može biti ili istinito ili netačno.

Složeni operater

Ako je pod pravim uslovom potrebno izvršiti nekoliko operatora, onda prema pravilima Pascal jezika, oni moraju biti zatvoreni u blok, počevši od službene riječi početak i završavajući sa službenom riječ end. Takav blok se obično naziva zagrade operatera, a ova konstrukcija - složeni operater:

Operatorske zagrade i složeni operator u Pascalu:

ako boolean izraz onda započni naredbu1; operator2; end else begin naredba1; operator2; kraj;

Prevod termina sa engleskog operatera će olakšati razumevanje njihove upotrebe:

IF ONDA ELSE
IF ONDA U suprotnom


U uslovu (u logičkom izrazu) koriste se relacioni operatori.
Razmotrite listu operatora Pascal relacija:

  • više>
  • manje
  • veće ili jednako u Pascal> =
  • manje ili jednako u Pascalu
  • poređenje u Pascalu =
  • nije jednako u Pascalu

primjer: pronađite najveći od dva broja

Opcija 1 Opcija 2


Detaljno razumite posao Možete koristiti uslovni operator u Pascalu gledajući video tutorijal:

primjer: izračunajte vrijednost varijable y duž jedne od dvije grane

Prikaži rješenje:

var x, y: realno; započeti writeln ("unesite x"); pročitaj (x); ako je x> 0 onda y: = ln (x) inače y: = exp (x); writeln ("y =", y: 6: 2) (ukupan broj će zauzeti 6 pozicija, a u njemu će biti 2 decimalna mjesta).

Obratite pažnju na to kako je y prikazano u ovom primjeru. Prilikom zaključivanja varijabli tipa u Pascalu, možete koristiti tzv formatirani izlaz, ili zapis s dvije dvotočke:
y: 6: 2
- broj iza prve dvotočke (6) označava koliko znakova će broj uzeti kada se prikaže na ekranu
- cifra iza druge dvotočke (2) označava koliko će cifara nakon decimalne zareze biti prikazano u stvarnom broju

Dakle, upotreba takve notacije u Pascalu praktički omogućava zaokruživanje na stotinke, tisućinke itd.

Problem 0. Izračunajte vrijednost varijable y duž jedne od dvije grane:

Cilj 1. Dva broja se unose u kompjuter. Ako je prvi veći od drugog, onda izračunajte njihov zbroj, u suprotnom - proizvod. Računar tada treba da odštampa rezultat i tekst PROBLEM REŠEN

Cilj 2. Zmaj svake godine naraste tri glave, ali nakon sto navrši samo dvije. Koliko glava i očiju ima zmaj N godine?

Booleove operacije u Pascalu (u booleovim terminima)

Kada je potrebno koristiti dvostruki uslov u Pascalu, tada su potrebne logičke operacije.

  • Logička operacija I (I), stavljen između dva uslova, kaže da oba ova uslova moraju biti ispunjena odjednom (mora biti tačno). Logično značenje operacije je "konjunkcija".
  • Između dva uslova, znak ILI (ILI) kaže da je dovoljno ako je barem jedan od njih zadovoljen (jedan od dva uslova je tačan). Logično značenje operacije je "dizjunkcija".
  • U Pascalu XOR - znak logičke operacije, koji ima značenje "stroge disjunkcije" i ukazuje da je neophodno da je jedan od dva uslova ispunjen (tačan), a drugi nije ispunjen (netačno).
  • Logička operacija NE prije nego što logički izraz ili varijabla ima značenje "negacije" ili "inverzije" i označava da ako je data varijabla ili izraz istinita, onda je njihova negacija lažna i obrnuto.

Bitan: Svaki od jednostavnih uslova mora biti stavljen u zagrade.

Primjer: Razmotrite primjere logičkih operacija u logičkim izrazima u Pascalu

1 2 3 4 5 6 7 8 var n: cijeli broj; početak n: = 6; ako je (n> 5) i (n<10 ) then writeln ("истина" ) ; if (n>7) ili (n<10 ) then writeln ("истина" ) ; if (n>7) xor (n<10 ) then writeln ("истина" ) ; if not (n>7) zatim writeln ("istina"); kraj.

var n: cijeli broj; početak n: = 6; ako je (n> 5) i (n<10) then writeln("истина"); if (n>7) ili (n<10) then writeln("истина"); if (n>7) xor (n<10) then writeln("истина"); if not(n>7) zatim writeln ("istina"); kraj.

primjer: Kompanija zapošljava radnike od 25 do 40 godina. Unesite godine osobe i odredite da li je podesna za datu kompaniju (navedite odgovor "prikladan" ili "neprikladan").
Posebnost: potrebno je provjeriti da li su dva uslova ispunjena istovremeno.

primjer: Dat je cijeli broj A. Provjerite istinitost tvrdnje: "Broj A je neparan."

Top srodni članci