Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Javascript while, do-while i for petlje. Odaberite if naredbu u C jeziku

Javascript while, do-while i for petlje. Odaberite if naredbu u C jeziku

Drugi korak u stvaranju punopravnih programa na MatLab jezik je proučavanje operatora grananja i petlji. Uz njihovu pomoć možete implementirati logiku izvršavanja matematičkih algoritama i kreirati ponavljajuće (iterativne, rekurentne) izračune.

2.1. Uvjetna izjava if

Kako bi se logika mogla implementirati u program, koriste se uvjetne naredbe. Spekulativno, ti se operatori mogu predstaviti kao čvorne točke, nakon čijeg dostizanja program odabire u kojem će se smjeru dalje kretati. Na primjer, želite odrediti sadrži li neka varijabla arg pozitivan ili negativan broj i prikazati odgovarajuću poruku na ekranu. Da biste to učinili, možete upotrijebiti naredbu if, koja izvodi slične provjere.

U najjednostavnijem slučaju, sintaksa ove if naredbe je:

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

Ako je vrijednost parametra izraza istinita, tada se naredba izvršava, inače je program preskače. Treba napomenuti da je "izraz" uvjetni izraz u kojem se testira neki uvjet. U tablici 2.1 predstavlja opcije za jednostavne logičke izraze operatora if.

Tablica 2.1. Jednostavni Booleovi izrazi

Točno ako je a manje od b, netočno u suprotnom.

Točno ako je a veće od b, netočno u suprotnom.

Točno ako je a jednako b, netočno u suprotnom.

Točno ako je a manje ili jednako b, lažno u suprotnom.

Točno ako je a veće ili jednako b, lažno u suprotnom.

Točno ako a nije jednako b, netočno u suprotnom.

Dolje 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 moj_znak
x = 5;
ako je x > 0
disp(1);
kraj
ako x< 0
disp(-1);
kraj
ako je x == 0
disp(0);
kraj

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

ako<выражение>
<операторы1>% se izvršavaju ako je uvjet istinit
drugo
<операторы2>% se izvršavaju ako je uvjet lažan
kraj

Tada se gornji primjer može napisati na sljedeći način:

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

Ovaj program prvo provjerava je li x pozitivan, i ako jest, ispisuje vrijednost 1 i zanemaruje sve ostale uvjete. Ako se prvi uvjet pokaže netočnim, tada se izvršavanje programa nastavlja preko else (inače) do drugog uvjeta, gdje se provjerava negativnost varijable x, a ako je uvjet istinit, na ekranu se prikazuje vrijednost -1 . Ako su oba uvjeta lažna, prikazuje se vrijednost 0.

Gornji primjer može se napisati u jednostavnijem obliku korištenjem druge MatLab if naredbe:

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 izraz N istinit
kraj

i piše se na sljedeći način:

funkcija moj_znak
x = 5;
ako je x > 0
disp(1); % se izvršava ako je x > 0
inače ako x< 0
disp(-1); % se izvršava ako je x< 0
drugo
disp(0); % se izvršava ako je x = 0
kraj

Pomoću uvjetni operator ako može testirati složenije (kompozitne) uvjete. Na primjer, trebate odrediti: spada li varijabla x u raspon vrijednosti od 0 do 2? Ovo se može implementirati istovremenom provjerom dva uvjeta odjednom: x >= 0 i x<=2. Если эти оба условия истинны, то x попадает в диапазон от 0 до 2.

Za implementaciju složenih uvjeta u MatLabu koriste se logički operatori:

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

Pogledajmo primjer korištenja složenih uvjeta. Pretpostavimo da želite provjeriti je li 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
drugo
disp("x ne pripada rasponu od 0 do 2");
kraj

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

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

Pomoću logičkih operatora AND, OR, NOT možete stvoriti različite složene uvjete. Na primjer, možete provjeriti je li x u rasponu od -5 do 5, ali ne u rasponu od 0 do 1. Očito, ovo se može implementirati ovako:

funkcija my_if
x = 1;
ako (x >= -5 & x<= 5) & (x < 0 | x > 1)
disp("x pripada [-5, 5], ali nije u ");
drugo
disp("x ili ne u [-5, 5] ili u ");
kraj

Imajte na umu da su zagrade korištene u složenom složenom uvjetu. Radi se o tome da je prioritet operacije AND veći od prioriteta operacije OR, a ako ne postoji zagrade, onda bi uvjet izgledao ovako: (x >= -5 i x<= 5 и x < 0) или x >1. Očito bi takva provjera dala drugačiji rezultat od očekivanog.

Zagrade se u programiranju koriste za promjenu prioriteta izvršavanja naredbi. Kao i aritmetički operatori, logički se operatori također mogu modificirati na zahtjev programera. Korištenjem zagrada, test se prvo radi unutar njih, a zatim izvan njih. Zato su u gornjem primjeru nužni za postizanje traženog rezultata.

Prioritet logičkih operacija je sljedeći:

NE (~) – najviši prioritet;
I (&) – srednji prioritet;
ILI (|) – najniži prioritet.

Mogućnost kontrole tijeka programa omogućuje selektivno izvođenje pojedinačnih dijelova koda, a to je vrlo vrijedna značajka programiranja. Naredba if omogućuje nam da izvršimo ili ne izvršimo određene dijelove koda, ovisno o tome je li uvjet izjave istinit ili netočan. Jedna od najvažnijih svrha naredbe if je da dopušta programu da poduzme akciju na temelju onoga što je korisnik unio. Trivijalni primjer korištenja if-a je provjera lozinke koju je unio korisnik; ako je lozinka ispravna, program dopušta korisniku da izvede neku radnju; ako je lozinka unesena netočno, tada program neće dopustiti korisniku pristup ograničenim resursima .

Bez uvjetne naredbe, program bi se uvijek iznova izvršavao na isti način, bez obzira na unos koji je korisnik dao. Ako koristite operatore odabira, rezultat programa može biti mnogo zanimljiviji jer će izravno ovisiti o korisnikovim ulaznim podacima.

Prije nego što počnete razumijevati strukturu naredbe if, vrijedi obratiti pozornost na značenja TRUE i FALSE u kontekstu programske i računalne terminologije.

Prava vrijednost (TRUE) ima vrijednost različitu od nule, FALSE je ekvivalent nuli. Kada koristite operatore usporedbe, operator će vratiti jedan ako je izraz usporedbe istinit ili - 0 ako je uvjetni izraz netočan. Na primjer, izraz 3 == 2 vratit će vrijednost 0, jer tri nije jednako dva. Izraz 5 == 5 daje vrijednost true i vratit će vrijednost 1. Ako imate problema s razumijevanjem ovoga, pokušajte ispisati ove izraze na ekran, na primjer: printf("%d", 7 == 0);

Tijekom procesa programiranja često morate uspoređivati ​​neke varijable s drugima i na temelju tih usporedbi kontrolirati tijek programa. Postoji cijeli popis operatora koji vam omogućuje usporedbu, evo ga:

Vjerojatno ste upoznati s ovim operatorima usporedbe, ali za svaki slučaj, pokazao sam ih u gornjoj tablici. Ne bi vam trebalo biti teško razumjeti; većinu ovih operatora naučili ste u školi na satovima matematike. Sada kada razumijete što su TRUE i FALSE, vrijeme je da stavite if select naredbu na test. ako struktura:

If (uvjetni izraz) // evo jedne naredbe koja će se izvršiti ako je uvjetni izraz istinit

Evo jednostavnog primjera korištenja naredbe if:

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

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

If (TRUE) ( /* sav kod stavljen unutar zagrada bit će izvršen */ )

Ako ne koristite vitičaste zagrade, tada će se samo jedna, prva naredba, odnositi na tijelo naredbe if. Ako trebate kontrolirati nekoliko operatora, morate ih staviti u vitičaste zagrade. Preporučujem da uvijek stavljate zagrade iza if deklaracije - ovo je dobra programska praksa i nikada se nećete zbuniti u svom kodu, jer je takva deklaracija najrazumljivija.

else operator

Ponekad, kada je uvjetni izraz FALSE, bilo bi zgodno izvršiti neki kod koji se razlikuje od koda koji se izvršava kada je uvjet TRUE. Kako se to radi?
Evo primjera korištenja naredbe if else:

If (TRUE) ( /* izvrši ovaj kod ako je uvjet istinit */ ) else ( /* izvrši ovaj kod ako je uvjet lažan */ )

inače ako konstruirati

Obično else izjave if se koristi kada je potreban višestruki odabir, to jest, na primjer, definirano je nekoliko uvjeta koji mogu biti istiniti u isto vrijeme, ali trebamo samo jedan pravi uvjetni izraz. Naredbu if else možete koristiti odmah nakon naredbe if, nakon njenog tijela. U tom slučaju, ako je uvjet prve naredbe odabira TRUE, onda će klauzula else if biti zanemarena, dok će u suprotnom, ako je uvjet prve naredbe odabira FALSE, provjera klauzule else if početi biti pogubljen. To jest, ako je uvjet jedne if izjave istinit, tada se ostale neće provjeravati. Sada, kako bismo sve ovo čvrsto učvrstili u svojim glavama i razumjeli, pogledajmo jednostavan primjer koristeći konstrukcije operatora odabira.

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

Pogledajmo zanimljive uvjetne izraze koji koriste logičke operatore.

Logički operatori omogućuju stvaranje složenijih uvjetni izrazi. Na primjer, ako želite provjeriti je li vaša varijabla veća od 0, ali manja od 10, tada samo trebate koristiti logički operator - AND. Ovako se to radi - var > 0 i var< 10 . В языке СИ есть точно такой же же оператор, только обозначается он иначе — && .
Kada koristite if naredbe, često je potrebno testirati više raznim uvjetima stoga je vrlo važno razumjeti logičke operatore OR, NOT i AND. Logički operatori rade potpuno isto kao i operatori za usporedbu: vraćaju 0 ako je netočno ili 1 ako logički izraz- istina.
Pročitajte više o logičke operacije možete pročitati u.

U ovom ćemo članku nastaviti proučavati osnove PHP-a i razgovarati o ciklusima i stanjima. Prvo, pogledajmo konstrukciju IF - ELSE, koja vam omogućuje izvođenje određenih radnji ovisno o tome je li uvjet ispunjen ili ne. Zatim ćemo prijeći na cikluse. Ukupno će se razmatrati tri dizajna petlje - WHILE, DO - WHILE petlje i FOR petlja.

Osnove PHP-a. IF–ILSE konstrukcije

IF–ELSE konstrukcija omogućuje izvođenje određenih radnji ovisno o tome jesu li uvjeti ispunjeni ili ne. Ovaj dizajn može se široko koristiti u praksi, na primjer, za stvaranje jednostavne zaštite za neki dio web stranice pomoću lozinke. Ako korisnik uđe ispravna lozinka, tada mu je odobren pristup zatvorenom dijelu. U suprotnom, možemo mu dati poruku o pogrešci, na primjer.

U praksi konstrukcija IF – ELSE izgleda ovako:

Pa komentirajmo. Prvo, varijablama se dodjeljuju vrijednosti. Zatim se postavlja uvjet. Ako je varijabla $a jednaka varijabli $b, tada se izvršava kôd koji je na prvom mjestu vitičaste zagrade. Ako uvjet nije ispunjen, tada se sve što je u prvim vitičastim zagradama preskače i izvršava se kod koji je u vitičastim zagradama nakon ELSE. Kao što vidite, sve je banalno jednostavno i jasno.

Osim jednostavni uvjeti U PHP-u možete koristiti nekoliko uvjeta i IF – ELSE konstrukcija. Na primjer, pogledajmo sljedeći kod:

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

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

Sada pogledajmo znakove koji se primjenjuju u uvjetima.

  • == - u PHP-u ovaj znak znači jednaki. Znak "=" u PHP-u je znak dodjele.
  • != nejednak, na primjer, $a != $b – varijabla $a nije jednaka varijabli $b.
  • i ili &&- zlobno I, na primjer, $a != $b && $c != $d – varijabla $a nije jednaka varijabli $b i varijabla $c nije jednaka varijabli $d.
  • ili ili ||- zlobno 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. Sada počnimo čitati gornji kod, koji se riječima može izraziti na sljedeći način:

Ako je varijabla $a jednaka varijabli $b i varijabla $c jednaka varijabli $d ili je varijabla $e jednaka varijabli $d, tada prikazujemo poruku "Varijable su jednake" i radimo prijelom retka. Zatim radimo još jednu provjeru. Ako varijabla $e nije jednaka varijabli $c, tada prikazujemo poruku “Varijabla E nije jednaka varijabli C” i radimo prijelom retka. Ako uvjet nije ispunjen, ispisujemo "Varijabla E jednako je varijabli C." Ako prvi uvjet nije ispunjen, sav kod u prvim vitičastim zagradama se preskače i odmah se prikazuje poruka "Varijable nisu jednake" i pravi se prijelom retka (tag
).

Ovo zaključuje naše razmatranje konstrukcije IF – ELSE. Nadam se da ste razumjeli cijelu bit gore opisanog i prelazimo na daljnje proučavanje osnove PHP-a– proučavanje ciklusa.

Osnove PHP-a. WHILE i DO–WHILE petlje

Petlje u PHP-u imaju vrlo široku primjenu jer vam omogućuju implementaciju mnogih funkcija koje su prisutne na svakoj dinamičkoj web stranici. Jedan od najčešćih problema koji se rješava korištenjem petlji je, na primjer, izlaz najnovije vijesti mjesto. Cijela poanta petlji je izvođenje određene radnje sve dok je ispunjen uvjet. Na primjer, riješimo problem izračunavanja zbroja brojeva od jedan do 10. U u ovom slučaju Broj brojeva može biti bilo koji, ali uzmimo broj 10 kao primjer, jer će u ovom slučaju biti lakše provjeriti rezultat.

Za rješavanje ovog problema koristit ćemo se WHILE petlja . Kôd za izračunavanje zbroja brojeva od jedan do deset bio bi:

Prije svega, kreiramo varijable $s (zbroj) i $i (brojač) i dodijelimo im vrijednosti. Zatim pišemo WHILE petlju, u čijem uvjetu označavamo da se petlja treba izvršiti sve dok varijabla $i (brojač) ne bude manja ili jednaka 10. Vrijednost varijable $s upisujemo u tijelo petlju i povećajte brojač $i za jedan. To se radi pomoću dva znaka + ($i++) ili jednostavnim zbrajanjem jedinice ($i = $i + 1). Vrijednost brojača mora se promijeniti bez greške kako bi se izbjeglo cikliranje (izvršenje beskrajne petlje).

Sada pogledajmo kako se program izvršava. Prvo dodijelimo vrijednost varijablama. Petlja zatim provjerava stanje. Ako se izvrši, tada se izvršava kôd koji se nalazi u tijelu petlje (u vitičastim zagradama). Nakon izvršenja tijela petlje i povećanja brojača, uvjet se ponovno provjerava i, ako je istinit, petlja se ponovno ponavlja. Petlja će se ponavljati sve dok je uvjet ispunjen. Nakon što se petlja izvrši, rezultat se prikazuje na zaslonu pomoću operatora Echo output. Više o varijablama i izlaznim operatorima možete pročitati u članku "".

Isti način Ciklus DO – WHILE također radi. Jedina razlika je u tome što se provjera uvjeta vrši nakon što se petlja izvrši. Dakle, petlja će se u svakom slučaju izvršiti barem jednom. U praksi, DO – WHILE petlja izgleda ovako:

Kao što vidite, u rješavanju problema izračunavanja zbroja brojeva od jedan do deset pomoću DO – WHILE petlje, vrijednosti se prvo dodjeljuju varijablama. Zatim se kod izvršava i vrijednost brojača se inkrementira, a tek nakon svega toga provjerava se uvjet. Ako je ispunjen, ciklus se ponovno ponavlja. U suprotnom, rezultat se ispisuje na ekran pomoću izlaznog operatora.

Osnove PHP-a. FOR petlja

Uz pomoć FOR petlja možete izvoditi sve iste radnje kao s WHILE petljom. Također se koristi pri izradi web stranica, ali, po mom mišljenju, u manjoj mjeri od ciklusa WHILE. Osobno preferiram ovo drugo, ali u ovom članku ćemo se osvrnuti i na FOR petlju, jer je ona dio PHP jezika i morate je poznavati.

Pogledajmo rješavanje prethodnog problema korištenjem FOR petlje. Kod za izračunavanje zbroja brojeva od jedan do deset pomoću FOR petlje izgledao bi ovako:

Kao što vidite, sintaksa FOR petlje je sljedeća. Prvo se inicijaliziraju varijable, zatim se specificira uvjet, nakon čega se ukazuje na radnju koja se mora izvršiti nakon prolaska kroz jednu petlju. Shematski će izgledati ovako:

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

Kao što vidiš, PHP sintaksa slična C++ sintaksi. Ako ste učili C++, tada će vam biti lakše svladati PHP. Ali čak i ako prije niste proučavali druge programske jezike, lako možete savladati osnove PHP-a, budući da je on jedan od najvažnijih jednostavni jezici programiranje.

Ovo zaključuje ovaj članak o osnovama PHP-a. Ako vam se svidio moj stil pisanja članaka i sam njihov sadržaj, možete se pretplatiti na vijesti web stranice na bilo koji način koji vam odgovara u stavci "Pretplata".

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

C++ nudi standardni skup operatora za odabir odabira i ciklusa.

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

  • sklopka
  • pauza
  • zadano

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

  • dok
  • pauza
  • nastaviti

Izjave o uvjetima

Izjava If

Konstrukt uvjeta pomoću naredbe if formira se na sljedeći način:

Int x = 56; bool check_x() ( if (x > 0) return true; return false; )

U ovom slučaju, uvjet se stavlja u zagradu nakon naredbe if. U ovoj konstrukciji, povratni kod je istinit; Izvršit će se ako je x veći od 0. sljedeći redak return false; Više se ne odnosi na kôd koji će se izvršiti kada se uvjet ispuni. U konstruktima uvjeta, ako je ovaj uvjet ispunjen, izvršit će se samo jedna linija koda ako kod nije u vitičastim zagradama, to jest ako tijelo koda koji se izvodi pod uvjetom nije formirano. Razmotrimo dvije opcije koda:

Prva opcija:

Int x = 56; bool check_x() ( if (x > 0) x = 0; return true; return false; )

U ovom kodu vratite true; Uvijek će se izvršavati, jer je samo niz x = 0 relevantan za kôd koji se izvršava;

Druga opcija:

Int x = 56; bool check_x() ( if (x > 0) ( x = 0; return true; ) return false; )

U ovom kodu vratite true; Bit će zadovoljeno samo ako je zadovoljen uvjet x>0.

Izjava else

The drugo izjava se koristi u spoju s ako izjava za formiranje niza uvjeta.

Int x = 56; bool check_x() ( if (x > 0) ( x = 0; return true; ) else if (x< 0) { x = 0; return false; } else { return false; } }

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

Naredbe switch, case, break, default

The prebaciti kućište konstrukt se koristi za odabir grananja koda, u čijem se uvjetu odabir vrši cjelobrojnim vrijednostima. To znači da se slučaj switch može koristiti samo za cjelobrojne vrijednosti, nabrajanja i odabire kodom simbola.

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

U gornjem kodu, provjerava se da je varijabla x jednaka brojevima 0, 50, 100. Zadani operator odabire kod koji se izvršava ako niti jedan od uvjeta nije ispunjen. Imajte na umu također da u bloku koda sa slučajem 50: dodana naredba 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 osobitosti konstrukcije kućišta prekidača, moguće je kombinirati uvjete za koje je potrebno izvršiti isti kod. Na primjer:

Int x = 100; bool check_x() ( switch (x) ( case 0: case 50: case 100: return true; default: return false; ) )

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

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

Int x = 100; int check_x() ( switch (x) ( case 0: ( int y = 1; return y; ) case 50: ( int y = 2; return y; ) case 100: ( int y = 3; return y; ) default : vrati x; ))

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

Operatori ciklusa

Izjava while

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

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

U ovom kodu ja ću biti 10 nakon petlje.

Izjava do

Naredba do koristi se zajedno s naredbom while i omogućuje da se tijelo petlje izvrši najmanje 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 inicijalno ne odgovara uvjetu i u uobičajenoj petlji while kod tijela petlje nije izvršen, ali budući da se koristi petlja do-while, test će se izvesti nakon što se tijelo petlje izvrši pogubljen. Kao rezultat toga, izlaz std::cout je:

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

Izjava o prekidu

Kao u slučaju switch, ova se izjava može koristiti u petljama. Ovo je neophodno za izlazak iz petlje, prije nego što se ispuni uvjet ciklusa. Na primjer:

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

U umjetnom ovom primjeru, vječni ciklus bi rezultirao jer se varijabla i smanjuje umjesto da raste, a prema uvjetu petlje, izlaz će biti proizveden samo ako je i veći od 50. Ali zahvaljujući break naredbi i ispitnom uvjetu 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ćuje da prekinete ponavljanje petlje i započnete novo ponavljanje petlje prije izvršenja cijelog koda u tijelu petlje. Na primjer:

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

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

To jest, izlaz broja 3 će biti izostavljen.

Izjava for

Petlje s naredbom for omogućuju vam kombiniranje inicijalizacije varijabli, uvjeta i promjene tih varijabli.

Odnosno, sljedeća petlja while

Int i = 0; dok ja< 10) {

To će biti ekvivalentno sljedećoj for petlji:

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

Prednost ove for petlje bit će to š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đer, uvjet može biti deklaracija, inicijalizacija varijable. Na primjer:

Znak 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ćuje izlaz tipa 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 je zanimljivo 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, for petlje, iteracija je dodana za spremnike koji podržavaju iteraciju. Na primjer, vektorski spremnik iz standardne biblioteke:

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

U ovom kodu, konstrukcija petlje je sljedeća:

Za (Dohvaćeno iz spremnika pri svakoj iteraciji objekta: spremnik) ( // Tijelo ciklusa )

Također, petlje for na temelju raspona podržavaju auto naredbu. Na primjer:

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

Ova lekcija govori o uvjetnom operatoru u Pascalu ( ako). Objašnjava kako koristiti više uvjeta u jednoj konstrukciji ( I I ILI). Razmatraju se primjeri rada s operaterom

Podsjećamo vas da ova stranica ne pretendira pružiti potpunu prezentaciju informacija o temi. Svrha portala je pružiti mogućnost učenja gradiva na temelju gotovih riješenih primjera na temu “Programski jezik Pascal” uz praktične zadatke za učvršćivanje gradiva. Pascal zadaci predstavljeni na stranici poredani su sekvencijalno kako se njihova složenost povećava. Web stranicu mogu koristiti učitelji i nastavnici kao pomoćno vizualno pomagalo.

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

Blok dijagram uvjetnog operatora:

Uvjetna izjava u Pascalu ima sljedeću sintaksu:

Skraćena verzija:

if uvjet then izjava;

Puna verzija:

if uvjet then izjava else izjava;

Uvjetni operator u Pascalu - if - služi za organizaciju napredovanja zadatka na način da se redoslijed izvršavanja operatora mijenja ovisno o nekom logičkom uvjetu. Logički uvjet može imati jednu od dvije vrijednosti: istinito ili lažno, odnosno može biti istinito ili lažno.

Složeni operator

Ako je pod istinitim uvjetom potrebno izvršiti nekoliko iskaza, tada Prema pravilima jezika Pascal, oni moraju biti zatvoreni u blok, počevši od funkcijske riječi početak i završavajući funkcijskom riječi kraj . Takav se blok obično naziva operatorske zagrade, a ova konstrukcija - složeni operator:

Operatorske zagrade i složeni operator u Pascalu:

ako je logički izraz onda početak iskaza1; operator2; end else begin izjava1; operator2; kraj;

Prijevod s engleskog operatora uvjeta olakšat će razumijevanje njegove upotrebe:

AKO ZATIM DRUGO
AKO DA INAČE


Uvjet (u logičkom izrazu) koristi relacijske operatore.
Razmotrite Pascalov popis relacijskih operatora:

  • više >
  • manje
  • veći ili jednak u Pascalu >=
  • manji ili jednak u Pascalu
  • usporedba u Pascalu =
  • nije jednako u Pascalu

Primjer: pronaći najveći od dva broja

opcija 1 opcija 2


Detaljno razumjeti djelo možete koristiti uvjetni operator u Pascalu gledajući video vodič:

Primjer: izračunajte vrijednost varijable y koristeći jednu od dvije grane

Prikaži rješenje:

var x,y:stvarno; begin writeln("unesite x"); pročitaj(x); if x>0 then y:=ln(x) else y:=exp(x); writeln ("y=", y:6:2) (rezultirajući broj će zauzeti 6 mjesta i imat će 2 decimalna mjesta) end.

Primijetite kako je y ispisan u ovom primjeru. Prilikom dedukcije tipskih varijabli 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 će znakova broj zauzimati kada se prikaže na ekranu
- broj iza druge dvotočke (2) označava koliko decimala realnog broja će biti prikazano

Dakle, korištenje takve notacije u pascalu praktički vam omogućuje zaokruživanje na stotinke, tisućinke, itd.

Zadatak 0. Izračunajte vrijednost varijable y pomoću jedne od dvije grane:

Zadatak 1. U računalo se unose dva broja. Ako je prvi veći od drugog, izračunajte njihov zbroj, inače - proizvod. Nakon toga računalo treba ispisati rezultat i tekst PROBLEM RIJEŠEN

Zadatak 2. Zmaju svake godine izrastu tri glave, ali nakon što napuni 100 godina samo dvije. Koliko glava i očiju ima zmaj? N godine?

Logičke operacije u Pascalu (u logičkom izrazu)

Kada trebate koristiti dvostruki uvjet u Pascalu, trebat će vam logičke operacije.

  • Logička operacija I (I), postavljen između dva uvjeta, kaže da oba ova uvjeta moraju biti ispunjena odjednom (moraju biti istiniti). Logičko značenje operacije je "konjunkcija".
  • Postavljen između dva uvjeta, znak ILI (ILI) kaže da je dovoljno ako je barem jedan od njih zadovoljen (jedan od dva uvjeta je istinit). Logičko značenje operacije je "disjunkcija".
  • U Pascalu XOR - znak logičke operacije koja ima značenje “striktne disjunkcije” i označava da je potrebno da jedan od dva uvjeta bude ispunjen (true), a drugi nezadovoljen (false).
  • Logička operacija NE prije logičkog izraza ili varijable znači "negacija" ili "inverzija" i označava da ako je dana varijabla ili izraz istinit, onda je njegova negacija lažna i obrnuto.

Važno: Svaki jednostavni uvjet mora biti u zagradama.

Primjer: Pogledajmo 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("true"); 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("true"); kraj.

Primjer: Tvrtka zapošljava djelatnike od 25 do uključivo 40 godina. Unesite dob osobe i odredite je li prikladna za ovu tvrtku (prikažite odgovor "prikladno" ili "neprikladno").
Posebnost: moramo provjeriti jesu li dva uvjeta ispunjena istovremeno.

Primjer: Zadan je cijeli broj A. Provjerite istinitost tvrdnje: “Broj A je neparan.”

Najbolji članci na temu