Kontrolne strukture. Kontrolne konstrukcije jezika C

10.08.2022

Transact SQL sintaksa uključuje dvije glavne vrste kontrolnih struktura. Ovo su operateri: ako, dok. Svaka od ovih struktura ima odgovarajuća ograničenja i zahtjeve za njihovo pisanje u smislu standarda. Ima ih i nekih Opšti zahtjevi za sve date strukture. Svi ovi zahtjevi i ograničenja formirani su na osnovu principa lake naknadne čitljivosti izvornih tekstova.

Pravila za pisanje kontrolnih struktura

Sve izvor, koji se nalaze unutar kontrolnih struktura, kao i ugniježđene logičke strukture moraju biti uvučene za 2 znaka.

Nije dozvoljeno koristiti druge instrukcije zajedno sa kontrolom na istoj liniji.

4.2.1.3 Konstrukcija “početak kraj” uvijek mora početi na novom redu.

Ugniježđenje kontrolnih struktura je dozvoljeno, osim eksplicitno navedenih izuzetaka.

Uslovna IF izjava

Format:

Takođe je dozvoljeno pisati:

Format: ako [ logički izraz 1 ]

Svi dijelovi uvjetnog izraza (if, else if, else, početak, kraj) moraju se postaviti počevši od iste pozicije

4.2.2.2 Unutar "logičkih zagrada" uslovnog izraza, Transact SQL jezični izrazi moraju biti postavljeni u skladu sa standardnim tabulatorom od 2 znaka

Kada pišete logičke operatore u logičke izraze, morate staviti razmake ispred i iza njih

Prilikom pisanja složenih logičkih izraza zabranjeno je umetanje razmaka između zagrada i dijela logičkog izraza

WHILE kontrolna konstrukcija

Format: while ([uvjet nastavka petlje])

(operateri)

4.2.3.1 Unutar “logičkih zagrada” strukture while, Transact SQL izrazi moraju biti postavljeni u skladu sa standardnim tabulatorom od 2 znaka

Upotreba while strukture je fundamentalna za organiziranje različitih prolaza pomoću kursora.


Osnovni operatori

Transact SQL sintaksa uključuje pet osnovnih operatora. Ovo su operateri: izaberite, umetanje, ažuriranje, brisanje, kursor. Za svakog od ovih operatera postoje odgovarajuća ograničenja i zahtjevi za njihovo pisanje u smislu standarda. Postoje i neki opći zahtjevi za sve ove operatere. Svi ovi zahtjevi i ograničenja formirani su na osnovu principa lake naknadne čitljivosti izvornih tekstova.

Napomena: Razmatraju se kontrolne konstrukcije jezika C: "if-else" i "if-else if" grane, "while" i "for" petlje. Postoje i konstrukcije koje je najbolje izbjegavati: “switch”, “do-while”, “goto”. Razmatra se prezentacija programa u obliku skupa funkcija, prototipovi funkcija, metode prijenosa ulaznih i izlaznih parametara. Navedene su različite vrste memorije: statička, stek, dinamička (heap) i načini rada sa memorijom u C. Uveden je kompozitni tip podataka "struktura". Materijal je ilustrovan brojnim primjerima programa: rješavanje kvadratne jednadžbe, izračunavanje kvadratnog korijena, izračunavanje gcd dva broja i proširenog Euklidovog algoritma, ispis prvih N prostih brojeva, rekurzivno obilaženje stabla, itd.

Kontrolne strukture

Kontrolne konstrukcije vam omogućavaju da organizirate petlje i grane u programima. Postoji samo nekoliko konstrukcija u C-u, a polovina njih ne treba da se koristi (oni se implementiraju kroz ostatak).

Proteze

Vitičaste zagrade vam omogućavaju da kombinujete nekoliko elementarnih izraza u jednu složenu izjavu ili blok. U svim sintaksičkim konstrukcijama, složeni operator se može koristiti umjesto jednostavnog.

U C-u možete postaviti deklaracije lokalnih varijabli na početak bloka. Lokalne varijable definirane unutar bloka kreiraju se pri ulasku u blok i uništavaju se nakon izlaska.

U C++, lokalne varijable mogu biti deklarirane bilo gdje, ne samo na početku bloka. Međutim, baš kao i u C-u, oni se automatski uništavaju pri izlasku iz bloka.

Evo fragmenta programa koji razmjenjuje vrijednosti dvije stvarne varijable:

dvostruki x, y; . . . (dvostruki tmp = x; x = y; y = tmp; )

Ovdje, da bismo razmijenili vrijednosti dvije varijable x i y, prvo pohranjujemo vrijednost x u pomoćnu varijablu tmp. Tada se vrijednost y upisuje u x, a prethodna vrijednost x pohranjena u tmp se upisuje u y. Pošto je varijabla tmp potrebna samo unutar ovog fragmenta, zatvorili smo je u blok i deklarirali tmp varijablu unutar tog bloka. Po izlasku iz bloka, memorija koju zauzima tmp varijabla će se osloboditi.

if izjava

Naredba if vam omogućava da organizirate grananje u programu. Ima dva oblika: naredbu "ako" i naredbu "ako...else". Operator "if" ima oblik

ako (uslov) radnja;

operator "if...else" ima oblik

if (uslov) akcija1; else action2;

Možete koristiti bilo koji izraz logičkog ili cjelobrojnog tipa kao uvjet. Podsjetimo da kada se koristi cjelobrojni izraz, vrijednost "true" odgovara bilo kojoj vrijednosti koja nije nula. Prilikom izvršavanja naredbe "if", prvo se evaluira uvjetni izraz nakon if. Ako je istina, tada se radnja izvodi, ako je lažna, onda se ništa ne događa. Na primjer, u sljedećem fragmentu, maksimalna vrijednost varijabli x i y je upisana u varijablu m:

dvostruki x, y, m; . . . m = x; ako je (y > x) m = y;

Prilikom izvršavanja naredbe "if...else" kada je uslov istinit, izvršava se akcija zapisana nakon if; inače se izvršava akcija nakon else. Na primjer, prethodni fragment se prepisuje na sljedeći način:

dvostruki x, y, m; . . . ako je (x > y) m = x; inače m = y;

Kada trebate izvršiti nekoliko radnji ovisno o istinitosti uvjeta, trebali biste koristiti vitičaste zagrade, kombinirajući nekoliko izraza u blok, na primjer,

dvostruki x, y, d; . . . ako (d > 1.0) ( x /= d; y /= d; )

Ovdje se varijable x i y dijele sa d samo ako je vrijednost d veća od jedan.

Vitičaste zagrade se mogu koristiti čak i kada postoji samo jedna izjava nakon if ili else. Oni poboljšavaju strukturu programskog teksta i olakšavaju njegovu moguću modifikaciju. primjer:

dvostruki x, y; . . . ako (x != 0,0) ( y = 1,0; )

Ako trebamo dodati još jednu radnju koja se izvodi ako "x nije nula", onda ćemo jednostavno dodati liniju unutar vitičastih zagrada.

Odaberite između nekoliko opcija: ako...drugo ako...

Višestruki if...else uslovni iskazi mogu se napisati sekvencijalno (tj. radnja nakon else može opet biti uslovna izjava). Kao rezultat, to se ostvaruje izbor između nekoliko opcija. Konstrukcija selekcije se vrlo često koristi u programiranju. Primjer: date realnu varijablu x, trebate upisati vrijednost funkcije sign(x) u realnu varijablu y.

Pozdrav dragi programeri početnici.

Vjerovatno ste već shvatili iz prethodnih članaka da se program sastoji od izraza, nizova, brojeva, operatora, funkcija koje se izvršavaju u određenom nizu.

Redoslijed izvršavanja programa određuje programer, a za to koristi jezičke kontrolne konstrukcije. To jest, kontrolna struktura je naredba za jedan ili drugi redoslijed izvršavanja programa.

Prije nego što pređemo na opis kontrolnih konstrukcija, moram vas upozoriti da ćete vidjeti mnoga poznata imena, budući da konstrukcije mogu biti operatori, funkcije, petlje, o čemu smo već govorili u prethodnim člancima.

Konstrukcije (moguće definicije - instrukcija, naredba) mogu biti jednolinijske ili složene, odnosno sastavljene u blok. Blok je također zasebna struktura, koja uzastopno izvršava strukture sadržane u njemu.

Postoji šest glavnih grupa kontrolnih konstrukcija u PHP-u. Ovo:

1. Uslovni iskazi.
2. Ciklusi.
3. Dizajn po izboru.
4. Dizajn oglasa.
5. Konstrukcije povrata vrijednosti.
6. Konstrukcije inkluzija.

Pogledajmo ih detaljno, i sve po redu.

Uslovne izjave

Već smo se upoznali sa uslovnim operatorima if, else, elseif u članku “PHP Operatori”, pa ćemo sada, posmatrajući ih kao upravljačke strukture, moći da ponovimo ono što smo pokrili, a što, kao što znamo, nikada nije suvišno.

Uslovni izrazi su najčešće korišćene konstrukcije, ne samo u PHP jeziku, već iu svim algoritamski jezici programiranje.

Primjer jednog reda ako konstrukti

ako ($next == 0)
{
echo "Ovo je konstrukcija programskog jezika";
}
?>

Ovaj primjer if naredbe specificira da varijabla $next mora biti jednaka nuli. Ako je ovaj uslov tačan, tada će se izvršiti eho. Ako ne, otvorit će se prazna stranica.

Sljedeći će biti primjer kompozitne strukture.

$sljedeći = 0 ;
ako ($next == 0 )
{
echo $vegetables " Povrće
";
echo $fruit. „Voće
";
echo $bobice. "Bobice
";
}
?>

Ovdje je varijabli $next također dodijeljena vrijednost 0, a if konstrukcija, nakon što je provjeri, izvršava blok echo konstrukcija.

Imajte na umu da za prekid reda u php-u koristimo oznaku koja nam je poznata iz html-a
. Srešćemo se ponovo u budućnosti html oznake, koji se koristi u php kodu.

I također ću napomenuti da uvlačenja u PHP-u nisu bitna, a primjenjuju se samo poboljšanja u čitljivosti koda.

U prethodnom primjeru razmatrali smo opciju kada se instrukcija izvršava ako je navedeni uvjet istinit.

Sada zamislite da trebamo izvršiti neku naredbu ne samo kada je uslov konstrukcije if tačan, već i kada uslov nije istinit.

U ovom slučaju se primjenjuje druga konstrukcija

$sljedeći = 1 ;
ako ($next == 0 )
{
echo $povrće . "Povrće";
}
ostalo
{
echo $fruit . "Voće";
}
?>

U ovom slučaju se ne otvara prazna stranica, već unos „Voće“.

elseif konstrukcija

Ova konstrukcija dalje proširuje mogućnosti if i else konstrukcija. Zamislite da imamo više od dva izraza, od kojih se jedan mora izvršiti.

U ovom slučaju, elseif konstrukcija se dodaje prethodnim konstrukcijama.

$sljedeći = 0 ;
ako ($next == 0 )
{
echo $povrće . "Povrće";
}
elseif ($next == 0)
{
echo $fruit . "Voće";
}
ostalo
{
echo $berries . "Bobice";
}
?>

U teoriji, broj elseif je neograničen. I bez obzira koliko ih ima, program će provjeravati svaki od njih sve dok ne pronađe ispravnu opciju, odnosno true .

Konstrukcije selekcije

Vrlo često, kada velike količine operatora, upotreba elseif konstrukcije postaje nezgodna zbog velike količine koda.

U ovom slučaju dolazi u pomoć dizajn kućišta prekidača, možete prebaciti prekidač

Konstrukcija kućišta prekidača je po svom djelovanju slična konstrukciji if-else, ali za razliku od potonje, omogućava vam da dobijete više od dvije opcije kao rezultat.

Tijelo konstrukcije je zatvoreno vitičastim zagradama, a za svaku vrijednost koja se obrađuje koristi se iskaz case, koji se završava dvotočkom, nakon čega slijedi završni izraz break.

$next= "Voće";
prekidač ($sljedeći) (
slučaj "Povrće":
eho "Krompir";
break ;
slučaj "Voće":
eho "Jabuke";
break ;
slučaj "Bobice":
eho "Trešnja";
break ;
}
//Jabuke su prikazane

U ovom primjeru, uvjet će se prvo obraditi, zatim će se pronaći iskaz case sa vrijednošću koja odgovara ovom uvjetu, a tek nakon toga će se početi izvršavati konstrukcija switch.

Za vrijednosti koje nisu navedene u zadatku, u konstrukciji switch-case koristi se zadani operator.

$next= "Pečurke";
prekidač ($sljedeći) (
slučaj "Povrće":
eho "Krompir";
break ;
slučaj "Voće":
eho "Jabuke";
break ;
slučaj "Bobice":
eho "Trešnja";
break ;
zadano:
eho "šampinjoni";
}
//Prikazuju se šampinjoni
?>

Ako izostavite naredbu break, program će obraditi i prikazati sve vrijednosti konstrukcije switch-case

$next= "Povrće";
prekidač ($sljedeći) (
slučaj "Povrće":
eho "Krompir";
slučaj "Voće":
eho "Jabuke";
slučaj "Bobice":
eho "Trešnja";
zadano:
eho "šampinjoni";
}
/* Izlaz
Krompir
Jabuke
Trešnja
šampinjoni */

?>

Još jedna karakteristika dizajna kućišta prekidača je mogućnost kombinovanja nekoliko opcija u jedan izraz.

$next= "Javor";
prekidač ($sljedeći) (
slučaj "Povrće":
slučaj "Voće":
slučaj "Bobice":
odjek "Krompir
Jabuke
Trešnja";
break ;
slučaj "Maple":
kućište "Hrast":
slučaj "Smreka":
eho "Šuma";
break ;
zadano:
eho "šampinjoni";
}
// Izlazi šuma
?>

Ciklusi ili strukture ponavljanja.

Petlje su namijenjene za ponovljeno (za razliku od if konstrukcije) izvršavanje operatora koji čine tijelo konstrukcije.

Proces izvršavanja petlje naziva se iteracija.

Postoje tri tipa petlji u php-u:

1. while i do-while su petlje sa neodređenim brojem iteracija.
2. for - petlja s unaprijed određenim brojem iteracija.
3. foreach - ciklus obrade (nabrajanja) niza.

dok konstruisati

Primjer jednostavne petlje s jednom naredbom; obično ih ima više.

$sljedeći = 1 ;
dok ($next<= 8 )
{
echo $next. "
" ;
$next++;
}
//Prikazuje brojeve od 1 do 8. Tag
slaže ih u kolonu

?>

Pogledajmo izbliza šta se ovde dešava, odnosno kako ovaj program funkcioniše.

Prvi red deklarira varijablu $next, kojoj je dodijeljena vrijednost jedan. Dodjela vrijednosti naziva se inicijalizacija varijable.

U drugom redu, program provjerava uvjet while ($next<= 8) , которое будет являться истиной (true).

Treći red izvršava prvu petlju jer je jedan manji od 8, a ovo se kvalifikuje kao tačno

U četvrtom, promenljivoj, koja je u ovom slučaju operator, dodeljuje se operator inkrementa (++), koji povećava svaku sledeću vrednost operatora $next za jedan.

I program će obraditi i prikazati svaki sljedeći cijeli broj dok ne dostigne 9. A pošto se ispostavi da je 9 netačno, petlja će se završiti.

uradi-dok konstrukt razlikuje se po tome što se uvjet petlje provjerava ne prije, već nakon iteracije.

Kao rezultat toga, prije nego što se petlja završi, izvršit će se jedna iteracija, što je netačno

$sljedeći = 1 ;
uradi
{
echo $next;
}
dok ($next++<= 8 );
//Ispisuje brojeve od 1 do 9 u jednom redu.
?>

Kao što vidite, iako je 9 netačno, sljedeća iteracija je ipak završena, nakon čega je program provjerio uvjet i petlja se završila.

The for construct, ili petlja sa brojačem, slična je u radu petlji while, ali ima kompaktniji oblik zapisa.

Najbolje se koristi kada je broj iteracija poznat prije početka petlje, a uz njegovu pomoć možete izvoditi akcije složenije od jednostavnog sortiranja kroz vrijednosti brojača.

U sljedećem primjeru ćemo napisati sadržaj za malu knjigu.

za ($sljedeći = 1; $sljedeći< 5 ; $next++)
{
echo "- Stranica" . $next . "
";
}
/*Izlazi
-Stranica 1
-Stranica 2
-Stranica 3
-Stranica 4
-Stranica 5 */

?>

Razmotrimo detaljno tri izraza zapisana u uslovu (zagradama) petlje.

$sljedeći = 1; — varijabla brojača koja počinje brojati od jedan.
$sljedeći< 5; — определяет продолжительность цикла.
$next++ — definira korak za promjenu vrijednosti brojača. U našem slučaju to je jednako jedan.

Izrazi su odvojeni tačkom i zarezom. Možete staviti nekoliko naredbi u jedan izraz i odvojiti ih zarezima. Tada se isti sadržaj može učiniti malo drugačije

za ($next= 1 , $nev= 1 , $page= "-Stranica"; $sljedeći<= 5 ; $nev++, $next=$nev)
{
$page=$stranica . "-";
echo $page, $next . "
";
}
/*Izlazi
-Stranica-1
-Stranica--2
-Stranica---3
-Stranica----4
-Stranica-----5 */

?>

Još jedna karakteristika for je sposobnost da se odustane od eho konstrukcije.

Istina, ova opcija nije posebno dobrodošla, jer donekle otežava čitljivost koda zbog svoje neobične prirode, ali ipak ima pravo na postojanje.

U njemu se konstrukcija printa uvodi u stanje petlje

za ($sljedeći= 1; $sljedeći<= 5 ; print $next, print "
" , $next++);
/*Izlazi
1
2
3
4
5 */

?>

Eho konstrukcija se ne može unijeti u uvjet za.

Sve gore navedene konstrukcije, osim do-while , imaju alternativni oblik zapisa - bez vitičastih zagrada.

U ovom slučaju, linija sa konstrukcijom i uslovom završava se dvotočkom, a cijeli blok se zatvara krajnjom konstrukcijom, čiji je nastavak konstrukcija na koju je primijenjen: endif, endwhile i tako dalje.

$sljedeći = 1 ;
dok ($next<= 10 ):
echo $next;
$next++;
endwhile ;
?>

foreach konstrukcija je posebna vrsta petlje dizajnirana samo za ponavljanje niza.

$next[ "tomato"] = "Crveno";
$next[ "apple"] = "Zelena";
$next[ "grožđe"] = "Slatko";
$next[ "gljiva"] = "Bela";
za svaki ($next as $key => $value)
{

echo "$value $key
";
}
/*Izlazi
Crveni paradajz
Zelena jabuka
Slatko grožđe
vrganji */

?>

Za izlazak iz petlje odmah, ako je potrebno, postoji prekid konstrukcije. Nakon njegovog izvršenja, kontrola se prenosi na izraz koji slijedi nakon petlje.

$sljedeći= 0 ;
dok ($next++< 10 )
{
if ($next== 7 ) break;
echo "$sljedeći
";
}
/*Izlazi
1
2
3
4
5
6 */

?>

Kao što vidite, na sedmoj iteraciji petlja je prekinuta.

Nastavite sa gradnjom, za razliku od break , prekida samo trenutnu iteraciju i prelazi na sljedeću.

$sljedeći= 0 ;
dok ($next++< 5 )
{
if ($next== 3) nastavi;
echo "$sljedeći
";
}
/*Izlazi
1
2
4
5 */

?>

Kao što vidite, iteracija 3 nedostaje, jer je prekinuta konstruktom za nastavak

Dizajn oglasa

Deklaracijske konstrukcije u PHP-u su predstavljene sa dva elementa. Ovo su konstrukcije deklariranja i skupa.

U stvari, oni su apsolutno identični, i s jednakim uspjehom možete koristiti i jedno i drugo za postizanje istog rezultata.

Da bi kod bio lakši za razumijevanje, uglavnom se koristi konstrukcija deklariranja. Koristi se za postavljanje naredbi (direktiva) za izvršavanje bloka.

Trenutno su prepoznate dvije direktive: tikovi i kodiranje

Ticks direktiva specificira broj tikova

proglasiti (ticks= 1 );

register_tick_function("tick_handler");

// Funkcija će se izvršavati na svakom tiku
?>

Direktiva kodiranja se koristi za specificiranje kodiranja cijele skripte.

declare(encoding= "UFT-8");
?>

Inkluzivni dizajni

Inkluzivne konstrukcije se koriste za unos pojedinačnih skripti i datoteka u program. Zahvaljujući njima, program se može sastaviti od gotovog materijala.

Konstrukcije uključivanja se također koriste za smanjenje količine koda skripte kada trebate unijeti neki tekst u kod. Zatim se txt datoteka unosi u program.

Istina, u ovom slučaju nastaje prijetnja sigurnosti skripte, a zajedno s njom i rješavanje txt fajl Potrebno je unijeti konstantu u program, te provjeriti njeno postojanje u uključenim datotekama.

Ukupno, postoje 4 vrste inkluzivnih konstrukcija u PHP-u, i svi oni uzimaju samo jedan argument - putanju do datoteke:

uključi - povezuje datoteku sa programom, ako nedostaje, izdaje upozorenje;
Zahtevaj - povezuje datoteku sa programom, a ako nedostaje, zaustavlja skriptu;
include_once - dozvoljava samo jednokratno uključivanje uključenog fajla, a ako ga nema, izdaje upozorenje;
require_once - dozvoljava samo jednokratno uključivanje povezane datoteke, au nedostatku, zaustavlja skriptu;

Konstrukcije include_once i require_once su zgodne jer eliminišu zabunu kada je ugniježđeno uključuje, kada je moguće ponovo uključiti datoteke koje sadrže deklaracije funkcija.

Zar zaista nema više pitanja?


Okreni se

Samo je kod nas riječ “uh-ha” sinonim za riječi “molim”, “hvala”, “dobar dan”, “nema na čemu” i “izvini”, a riječ “ajde” u većina slučajeva zamjenjuje "zbogom".

Ne možeš čekati nikakvu ljubav kao autobus na -30°.

Bilo koja PHP skripta je formirana iz niza konstrukcija. Konstrukcije mogu biti operatori, funkcije, petlje. Konstrukcije se obično završavaju tačkom i zarezom. Dodatno, konstrukcije se mogu grupirati zajedno da formiraju grupu konstrukcija sa vitičastim zagradama (...). Grupa struktura je takođe posebna struktura.

Danas ću ukratko govoriti o osnovnim konstrukcijama PHP-a. Hajde da počnemo:

Uslovne izjave:

Uslovni izrazi su najčešće konstrukcije u svim algoritamskim programskim jezicima.

1. Konstrukcija if

if (boolean izraz)
operater;
?>

Konstrukcija if sadrži logički izraz. Ako je logički izraz istinit (tačan), onda će se izvršiti naredba koja slijedi nakon konstrukcije if, a ako je logički izraz lažan (lažno), onda se neće izvršiti naredba koja slijedi nakon if. Evo primjera:

ako ($a > $b) eho "vrijednost a je veća od b";
?>

2. Druga konstrukcija

Često postoji potreba za izvršavanjem naredbi ne samo u tijelu if konstrukcije, već i ako uvjet if konstrukcije nije ispunjen. U ovoj situaciji ne možete bez konstrukcije else. Ova konstrukcija će se zvati if-else.

if (boolean_expression)
instrukcija_1;
ostalo
instrukcija_2;
?>

Ako je Boolean_expression tačan, onda izvršite
instrukcija_1, inače - instrukcija_2. Kao iu svakom drugom jeziku, klauzula else može biti izostavljena, u kom slučaju se ništa ne radi kada se dobije odgovarajuća vrijednost. primjer:

ako ($a > $b) (
echo "a je veće od b" ;
) drugo (
echo "a NIJE veće od b";
}
?>

Konstrukt if-else.

Obratite pažnju na položaj debelog creva (:)! Ako ga preskočite, generirat će se poruka o grešci.

if (boolean_expression):
timovi;
elseif(other_logical_expression):
ostale_naredbe;
ostalo:
else_commands;
endif
?>

3. elseif konstrukcija

elseif je kombinacija if i else konstrukcija. Ova konstrukcija proširuje uslovnu konstrukciju if-else.

if (boolean_expression_1)
operator_1;
elseif (boolean_expression_2)
operator_2;
ostalo
operator_3;
?>

Praktični primjer korištenja elseif konstrukcije:

ako ($a > $b) (
echo "a je veće od b" ;
) elseif ($a == $b) (
echo "a je jednako b" ;
) drugo (
echo "a je manje od b" ;
}
?>

Kontrolne strukture

Ciklusi:

Petlje vam omogućavaju da ponovite određeni (pa čak i neodređeni - kada rad petlje zavisi od uslova) broj puta različitih naredbi. Ove izjave se nazivaju tijelom petlje. Prolazak petlje naziva se iteracija.

1. Petlja s preduvjetom while

Petlja s preduvjetom while radi prema sljedećim principima:

  • Izračunava se vrijednost logičkog izraza.
  • Ako je vrijednost istinita, tijelo petlje se izvršava; u suprotnom prelazimo na naredbu koja slijedi nakon petlje.

dok (logički_izraz)
instrukcije;
?>

U ovom slučaju, tijelo petlje je instrukcija. Obično se tijelo petlje sastoji od velikog broja iskaza. Primjer petlje s preduvjetom while:

$x = 0;
dok ($x++< 10 ) echo $ x ;
// Ispisi 12345678910
?>

2. Petlja sa do while postuvjetom

Za razliku od while petlje, ova petlja provjerava vrijednost izraza ne prije, već nakon svakog prolaza. Dakle, tijelo petlje se izvršava najmanje jednom.

uradi
{
loop_body;
}
while (logički_izraz);
?>

Nakon sljedeće iteracije, provjerava se da li je logički_izraz istinit, i ako je tako, kontrola se ponovo prenosi na početak petlje, inače se petlja prekida. Primjer skripte:

$x = 1;
učiniti (
echo $x ;
) dok ($x++< 10 );
?>

3. Petlja sa for counter

Kontra petlja se koristi za izvršavanje tijela petlje određeni broj puta. Koristeći for petlju, možete (i trebali biste) kreirati konstrukcije koje će izvoditi radnje osim jednostavnog ponavljanja preko vrijednosti brojača.

for (inicijalizirajuće_naredbe; stanje_petlje; naredbe nakon_iteracije) (loop_body; )
?>

Petlja for počinje svoj rad izvršavanjem inicijalizacijskih naredbi. Ove naredbe se izvršavaju samo jednom.

Nakon toga, loop_condition se provjerava, ako je istinit, onda se izvršava loop_body. Nakon što se izvrši posljednji izraz tijela, izvršavaju se naredbe after_iteration. Zatim se ponovo provjerava loop_condition. Ako je istina, izvršavaju se body_of_the-loop i commands_after_iteration.

za ($x = 0; $x< 10 ; $ x ++) echo $ x ;
//Izlazi 0123456789

?>

Postoji alternativna sintaksa za petlju for:

for(inicijalizirajuće_naredbe; stanje_petlje; after_iteration_commands):
operateri;
endfor;
?>

4. Foreach array petlja

foreach (niz kao $key=>$value)
timovi;
?>

Komande se izvršavaju ciklički za svaki element niza, pri čemu sljedeći par ključ=>vrijednost završava u varijablama $key i $value. Primjer foreach petlje:

$ names [ "Ivanov" ] = "Andrej" ;
$ names [ "Petrov" ] = "Boris" ;
$ names [ "Volkov" ] = "Sergey" ;
$ names [ "Makarov" ] = "Fedor" ;
foreach ($names kao $key => $value) (
eho" $value $key
" ;
}
?>

Gornja skripta izlazi:

Andrej Ivanov
Boris Petrov
Sergej Volkov
Fedor Makarov

Foreach petlja ima još jedan oblik zapisa koji treba koristiti kada nas ne zanima vrijednost ključa sljedećeg elementa.

foreach (niz kao $vrijednost)
timovi;
?>

Foreach petlja ne radi na originalnom nizu, već na njegovoj kopiji. To znači da sve promjene koje su napravljene u nizu ne mogu biti „vidljive“ iz tijela petlje. Ovo vam omogućava da koristite ne samo varijablu kao niz, već i rezultat neke funkcije koja vraća niz (u ovom slučaju, funkcija će biti pozvana samo jednom - prije početka petlje, a zatim će posao biti obavljen sa kopijom vraćene vrijednosti).

5. Prekinuti konstrukciju

Vrlo često, kako bi se pojednostavila logika složene petlje, zgodno je da se može prekinuti tokom sljedeće iteracije. Zbog toga postoji konstrukcija break, koja odmah izlazi iz petlje.

Može se specificirati sa jednim opcionim parametrom - brojem koji označava iz koje ugniježđene petlje treba izaći. Zadana vrijednost je 1, tj. izlazi iz trenutne petlje, ali se ponekad koriste i druge vrijednosti.

break; // Zadano
prekid(broj_ciklusa); // Za ugniježđene petlje (naveden je broj prekinute petlje)
?>

$x = 0;
dok ($x++< 10 ) {
if ($x == 3) break;
echo "Iteracija $x
"
;
}
// Kada je $x 3, petlja se prekida
?>

Petlja će dati:

Iteracija 1
Iteracija 2

Ako treba da prekinemo rad određene (ugniježđene) petlje, onda moramo prenijeti parametar u konstrukciju break - broj_loop, na primjer, break(1). Numeracija ciklusa izgleda ovako:

for (...) // Treća petlja
{
for (...) // Druga petlja
{
for (...) // Prva petlja
{
}
}
}

6. Nastaviti izgradnju

Konstrukt nastavljanja, baš kao i break, radi samo "u tandemu" sa cikličkim konstruktima. Odmah završava trenutnu iteraciju petlje i prelazi na novu (ako je, naravno, ispunjen uslov petlje za petlju sa preduslovom). Na isti način kao i za prekid, za nastavak možete odrediti nivo ugniježđenja petlje, koji će se nastaviti po povratku kontrole.

U osnovi nastavak vam omogućava da sačuvate broj vitičastih zagrada u vašem kodu i povećate njegovu čitljivost. Ovo je najčešće potrebno u filtarskim petljama, kada treba iterirati kroz određeni broj objekata i odabrati od njih samo one koji zadovoljavaju određene uvjete.

$x = 0;
dok ($x++< 5 ) {
if ($ x == 3 ) nastavi;
echo "Iteracija $x
"
;
}
// Petlja će se prekinuti tek na trećoj iteraciji
?>

Skripta će ispisati:

Iteracija 1
Iteracija 2
Iteracija 4
Iteracija 5

Izbor dizajna:

kućište prekidača

Često, umjesto nekoliko if-else naredbi smještenih u nizu, preporučljivo je koristiti posebnu konstrukciju za odabir slučaja prekidača. Ova konstrukcija je namijenjena odabiru akcija ovisno o vrijednosti specificiranog izraza.

Konstrukcija switch-case donekle podsjeća na if-else konstrukciju. Konstrukcija izbora može se koristiti ako postoji mnogo mogućih opcija, na primjer, više od 5, a za svaku opciju morate izvršiti određene radnje.

prekidač (izraz) (
vrijednost slučaja1: naredbe1;
vrijednost slučaja2: naredbe2;
. . .
vrijednost slučajaN: naredbeN;
]
}
?>

Princip rada dizajna kućišta prekidača je sljedeći:

  • Izračunava se vrijednost izraza;
  • Gleda se skup vrijednosti. Neka vrijednost1 bude jednaka vrijednosti izraza izračunatog u prvom koraku. Ako konstrukcija break nije specificirana, tada će se izvršiti naredbe i, i+1, i+2, ... , N. U suprotnom će se izvršiti samo naredba broj i.
  • Ako nijedna vrijednost iz skupa ne odgovara vrijednosti izraza, tada se izvršava zadani blok, ako je naveden.

Primjer korištenja konstrukcije switch-case:

$x = 1;
// Koristi if-else
ako ($x == 0) (
echo "x=0
" ;
) elseif ($x == 1) (
echo "x=1
" ;
) elseif ($x == 2) (
echo "x=2
" ;
}
// Koristi switch-case
prekidač($x)(
slučaj 0 :
echo "x=0
" ;
break;
slučaj 1:
echo "x=1
" ;
break;
slučaj 2:
echo "x=2
" ;
break;
}
?>

Gornja skripta štampa x=1 dvaput.

Konstrukcija povratne vrijednosti:

povratak

Povratna konstrukcija vraća vrijednosti, prvenstveno iz korisnički definiranih funkcija, kao parametre zahtjeva funkcije. Kada se pozove return, izvršavanje korisnički definirane funkcije se prekida, a konstrukcija return vraća određene vrijednosti.
Ako je povratna konstrukcija pozvana iz globalnog opsega (izvan korisnički definiranih funkcija), tada će skripta također izaći, a return će također vratiti određene vrijednosti.

Primjer korištenja povratne konstrukcije za vraćanje vrijednosti tipa cijeli broj:

funkcija retfunction()
{
return 7 ;
}
echo retfunction(); // ispisuje "7".
?>

Primjer vraćanja nizova pomoću povratne konstrukcije:

brojevi funkcija()
{
povratni niz (0, 1, 2);
}
lista($nula, $jedan, $dva) = brojevi();
echo $zero ;
echo $one ;
echo $dva;
// Štampa "012"
?>

Inkluzivni dizajni:

Inkluzivne konstrukcije vam omogućavaju da sastavite PHP program (skriptu) iz nekoliko zasebnih datoteka. Postoje dvije glavne konstrukcije uključivanja u PHP-u: require i include.

1. zahtijevaju()

Potrebna konstrukcija vam omogućava da uključite kod prije nego što se skripta izvrši.

zahtijevaju naziv datoteke;

Kada se program pokrene, tumač će zamijeniti instrukciju sadržajem datoteke imena datoteke (ova datoteka može sadržavati i PHP skriptu).

2. uključiti

Klauzula uključivanja se takođe koristi za uključivanje datoteka u kod PHP skripte. Za razliku od konstrukcije require, konstrukcija uključivanja vam omogućava da uključite datoteke u kod PHP skripte dok je skripta pokrenuta.

uključiti naziv datoteke;

3. require_once i include_once

Korištenjem jednokratnih konstrukcija uključivanja require_once i include_once, možete biti sigurni da ista datoteka neće biti uključena dvaput. Konstrukcije require_once i include_once rade na isti način kao requre i include. Jedina razlika u njihovom radu je u tome što prije uključivanja datoteke, tumač provjerava da li je specificirana datoteka bila uključena ranije ili ne. Ako da, fajl neće biti ponovo uključen.

Kontrolne strukture

Uvod

U prva četiri poglavlja ove serije fokusirali smo se na raščlanjivanje matematičkih izraza i operatora dodjeljivanja. U ovom poglavlju ćemo se fokusirati na novu i uzbudljivu temu: raščlanjivanje i prevođenje kontrolnih konstrukcija kao što su IF naredbe.

Ova tema mi je pri srcu jer je za mene prekretnica. Igrao sam se sa raščlanjivanjem izraza baš kao što smo radili u ovoj seriji, ali sam se i dalje osjećao kao da sam još uvijek daleko od toga da mogu podržati cijeli jezik. Na kraju krajeva, pravi jezici imaju grane, petlje, potprograme i sve to. Možda ste podijelili neke od ovih misli. Prije nekog vremena, međutim, morao sam implementirati kontrolne konstrukcije za pretprocesor strukturiranog asemblera koji sam pisao. Zamislite moje iznenađenje kada sam otkrio da je ovo mnogo lakše od raščlanjivanja izraza kroz koje sam već prošao. Sjećam se da sam pomislio: "Hej, ovo je lako!" Nakon što završimo ovu lekciju, spreman sam se kladiti da ćete se i vi osjećati isto.

Iz knjige Hajde da napravimo kompajler! od Crenshaw Jacka

Kontrolne konstrukcije Uvod U prva četiri poglavlja ove serije fokusirali smo se na raščlanjivanje matematičkih izraza i operatora dodjeljivanja. U ovom poglavlju ćemo se fokusirati na novu i uzbudljivu temu: raščlanjivanje i

Iz knjige Programski jezik C# 2005 i .NET 2.0 platforma. od Troelsen Andrew

Iterativne konstrukcije Svi programski jezici nude konstrukcije koje pružaju mogućnost ponavljanja blokova programskog koda sve dok se ne ispuni uslov za završetak ponavljanja. Ako imate iskustva u programiranju, onda će naredbe petlje u C#-u biti za vas

Iz Delphi knjige. Učenje na primjeru autor Parizski Sergej Mihajlovič

while i do/while konstrukcije Dok petlja je korisna kada se blok naredbi mora izvršiti dok se ne postigne specificirani uslov. Naravno, ovo zahtijeva da se uvjet završetka petlje definira u opsegu while petlje, inače ćete

autor Raymond Eric Stephen

Granajuće konstrukcije Granajuće konstrukcije vrše prijelaz na jedan od blokova programskog koda na osnovu provjere određenog uslova. To uključuje ako i

Iz knjige Umetnost programiranja za Unix autor Raymond Eric Stephen

Ciklične konstrukcije Za organizaciju cikličkog izvršavanja programskih blokova u Object Pascal jeziku, koriste se tri tipa cikličkih konstrukcija: for-do, while-do i repeat-until. Razlikuju se po prirodi početka i kraja

Iz knjige MySQL: Vodič za profesionalce autor Pautov Aleksej V

Iz knjige Kurs "PHP programski jezik" autor Saveljeva Nina Vladimirovna

20.3. Unix Design Problems Plan 9 čisti Unix, ali dodaje samo jedan novi koncept (privatni imenski prostor) svom osnovnom skupu dizajnerskih ideja. Međutim, postoje li ozbiljni problemi sa ovim osnovnim idejama? Poglavlje 1 govorilo je o nekoliko

Iz knjige XSLT Technology autor Valikov Aleksej Nikolajevič

5.2.10. Konstrukcije kontrole toka Konstrukcije IF, CASE, LOOP, WHILE, REPLACE ITERATE i LEAVE su u potpunosti implementirane.Mnoge od ovih konstrukcija sadrže druge izraze, kao što je naznačeno gramatičkim specifikacijama u sljedećim odjeljcima. Takve strukture mogu biti ugniježđene. Na primjer,

Iz knjige Computerra PDA N151 (24.12.2011.-30.12.2011.) autor Computerra Magazine

Iz knjige Fundamental Algorithms and Data Structures in Delphi autor Bucknell Julian M.

XML konstrukcije Osim elemenata, atributa i teksta, dokumenti mogu sadržavati i druge konstrukcije kao što su komentari, upute za obradu i dijelovi znakovnih podataka. Ove osnovne komponente se koriste u cilju fleksibilnosti, ali u strogom skladu sa

Iz knjige Firebird DATABASE DEVELOPER'S GUIDE od Borri Helen

Vannakh odjel: pokloni i dizajn Autor: Mikhail Vannakh Objavljeno 27. decembra 2011. Nevolje su prilično zamorna stvar. Ali postoji period kada su nevolje prijatne. Periodi su individualni kada se spremate za nečiji rođendan. Ili periodi masovne zabave,

Iz knjige The Art of Shell Scripting Language Programming od Coopera Mendela

Koje su to čudne $ifdef strukture u kodu? Svi primeri koda predstavljeni u knjizi, sa nekoliko posebno istaknutih izuzetaka, kompajlirat će se u Delphi 1, 2, 3, 4, 5 i 6, kao i u Kylixu 1. (Međutim, buduće verzije kompajlera treba da budu podržane.

Iz knjige Kraj svetog rata. Pascal protiv C autor Krivtsov M. A.

Programske konstrukcije Sljedeći odjeljci govore o programskim konstrukcijama koje prepoznaje PSQL. POČETNI ... KRAJ Blokovi PSQL je strukturirani jezik. Nakon deklaracija varijabli, proceduralni izrazi su zatvoreni u zagradama naredbi BEGIN i END. U toku

Iz autorove knjige

Primjer 16-9. Preusmjeravanje u if/then konstrukcije #!/bin/bashif [ -z "$1" ]then Filename=names.data # Podrazumevano ako fajl nije specificiran.else Filename=$1fiTRUE=1if [ "$TRUE" ] # konstruiše "if true" i "if:" su također savršeno prihvatljivi. zatim pročitajte ime echo $namefi<"$Filename"# ^^^^^^^^^^^^# Читает только первую строку из файла.exit

Iz autorove knjige

Iz autorove knjige

2. Dizajn softvera 2.1. Grananje (izbor)