Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Javascript while, do-while dhe for loops.

Disa burime thonë se deklarata if else select është operator i pavarur. Por kjo nuk është e vërtetë, nëse tjetër është vetëm një formë e shkrimit të deklaratës së përzgjedhjes if. Deklarata if else lejon programuesin të përcaktojë një veprim kur kushti është i vërtetë dhe një veprim alternativ kur kushti është false. Ndërsa nëse ju lejohet të përcaktoni veprimin nëse kushti është i vërtetë.

Sintaksa për të shkruar deklaratën e përzgjedhjes if else është:

Nëse (/*kushti që do të kontrollohet*/) ( /*trupi i operatorit përzgjedhës 1*/; ) tjetër ( /*trupi i operatorit përzgjedhës 2*/; )

Ai lexon kështu: “Nëse kushti që testohet është i vërtetë, atëherë zgjidhni trupin e deklaratës 1, përndryshe (d.m.th., kushti që testohet është i rremë) plotësohet zgjidhni trupin e deklaratës 2". Kushtojini vëmendje mënyrës se si shkruhet deklarata if else. Fjala tjetër zhvendosur posaçërisht në të djathtë në mënyrë që të kodi i programit ishte e qartë dhe e lehtë për t'u lexuar.

Le të shohim problemin nga tema e mëparshme, duke përdorur if other . Më lejoni t'ju kujtoj gjendjen e problemit: "Duke pasur parasysh dy numra, ju duhet t'i krahasoni ato."

// if_else.cpp: Përcakton pikën hyrëse për aplikacionin e konsolës. #include "stdafx.h" #include duke përdorur hapësirën e emrave std; int kryesore(int argc, char* argv) ( int a, b; cout<< "Vvedite pervoe chislo: "; cin >>a; cout<< "Vvedite vtoroe chislo: "; cin >>b; nëse (a >= b) // nëse a është më e madhe ose e barabartë me b, atëherë ( cout<< a << " >= " << b << endl; } else // иначе { cout << a << " <= " << b << endl; } system("pause"); return 0; }

Në këtë kod ne jemi të interesuarrreshtat 14-20. Këto rreshta lexohen kështu: nëse a (numri i parë) më i madh ose i barabartë me b (numri i dytë), më pas ekzekutoni deklaratën e daljes nërreshti 16

Cout<< a << " >= " << b << endl;

përndryshe ekzekutoni deklaratën e daljes në rreshti 19

Cout<< a << " <= " << b << endl;

Në këtë shembull ne përdorim operatorët e relacionit >= dhe<= . Условие перехода не совсем правильно, так как условие будет ложно только в том случае, если первое число будет меньше второго, во всех остальных случаях условие истинно. Значит, rreshti 19 ju duhet ta shkruani kështu

cout<< a << " < " << b << endl; // в кавычках записать не меньше или равно, а просто меньше.

Dhe kështu funksionoi programi (shih Figurën 1).

Vvedite pervoe chislo: 15 Vvedite vtoroe chislo: -4 15 >= -4 Për të vazhduar, shtypni çdo buton. . .

Figura 1 - Deklarata e përzgjedhjes nëse tjetër

Më lejoni t'ju tregoj një shembull tjetër të përdorimit të deklaratave të përzgjedhjes if else (të ashtuquajturat deklarata të mbivendosura if else për përzgjedhje të shumëfishtë).

Detyrë:
Krijoni një algoritëm që gjen vlerën e y, nëse y=x, për x<0; у=0, при 0<=х<30; у=х 2 , при х>=30;

// inif_else.cpp: Përcakton pikën hyrëse për aplikacionin e konsolës. #include "stdafx.h" #include duke përdorur hapësirën e emrave std; int kryesore(int argc, char* argv) ( int x, y; cout<< "Vvedite x: "; cin >>x; nëse (x< 0) { y = x; // выполняется, если х меньше нуля } else { if ((x >= 0) && (x< 30)) { y = 0; // выполняется, если х больше либо равно нуля и меньше 30 } else { if (x >= 30) ( y = x * x; // ekzekutohet nëse x është më i madh ose i barabartë me 30 ) ) ) cout<< "y=" << y << endl; system("pause"); return 0; }

Ekzistojnë tre raste të mundshme në këtë problem:
Rasti 1: x< 0 ;
Rasti i dytë: x shtrihet në rangun nga 0 (duke përfshirë 0) deri në 30;
Rasti i tretë: x është më i madh ose i barabartë me 30.

Vini re risinë!! NË Rreshti 17 një hyrje e tillë: nëse ((x >= 0) && (x< 30)) , Kam përdorur simbolet && - kjo është . Operacioni logjik DHE&& nevojitet për të kombinuar disa kushte të thjeshta në një kusht të përbërë. Në rastin tonë, është e nevojshme të kontrollohet vërtetësia e dy kushteve: e para – x ​​>= 0, e dyta – x< 30 . Все проверяемое условие будет истинно, если истинны два простых условия. В математике правильной записью считается такая запись: 0 <= x < 30 , а в С++ правильной записью считается вот такая запись: (x >= 0) && (x< 30) или такая 0 <= x && x < 30 . Кстати круглые скобочки () && () не обязательны, так как условия простые, но для уверенности, я прописываю, всегда, данные скобочки и вам советую.

Analiza e një rasti të veçantë:

Le të themi se përdoruesi ka futur numrin 31. Duke filluar nga rreshtat 12, kontrollohen kushtet. Ai lexon kështu: "Nëse x (31 në rastin tonë)< 0, то выполнить оператор в rreshti 14" Por meqenëse 31 > 0 kushti është i rremë, kalojmë te fjala tjetër (ndryshe) rreshti 15. Tjetra, ne kontrollojmë nëse numri 31 përfshihet në intervalin e specifikuar. Lexohet kështu: nëse x>=0 dhe x<30më pas ekzekutoni deklaratën në rreshtin 19 . Por duke qenë se numri 31 nuk përfshihet në intervalin e dhënë, kushti është i rremë. Detajet rreshti 17: programi fillimisht do të kontrollojë kushtin e parë të thjeshtë x >= 0 - është e vërtetë, dhe nëse e para është e vërtetë, atëherë programi do të vazhdojë të kontrollojë kushtin e dytë të thjeshtë x< 30 – оно ложно. Следовательно всё составное условие ложно, ведь в составном условии у нас используется логическая операция && , а это значит, что все составное условие истинно только в том случае, когда истинны оба простых условия. Переходим к else (иначе), здесь у нас последний if , (rreshti 22). Kontrolli është x >= 30. Lexohet kështu: Nëse x >= 30, atëherë ekzekutoni deklaratën e vendosur në rreshtin 24 . Më në fund, kushti është i vërtetë, kështu që deklarata në rreshti 24. DHE rreshti 28 printon vlerën që rezulton. Epo, kjo është ajo, ne e kemi parë programin deri në detajet më të vogla. Rezultati i programit nëse përdoruesi ka futur numrin 31 (shih Figurën 2)

C++ ofron një grup standard operatorësh për zgjedhjen e një përzgjedhjeje dhe ciklesh.

Fjalët kyçe që lidhen me ndërtimin e kushteve të degëzimit për kodin janë:

  • kaloni
  • thyej
  • default

Fjalët kyçe që lidhen me ndërtimin e cikleve janë:

  • derisa
  • thyej
  • vazhdojnë

Deklaratat e kushteve

Deklarata Nëse

Ndërtimi i kushtit duke përdorur deklaratën if është formuar si më poshtë:

Int x = 56; bool check_x() (nëse (x > 0) kthe e vërtetë; kthe e gabuar; )

Në këtë rast, kushti vendoset në kllapa pas deklaratës if. Në këtë ndërtim, kodi i kthimit është i vërtetë; Do të ekzekutohet nëse x është më i madh se 0. rreshti tjetër kthen false; Nuk vlen më për kodin që do të ekzekutohet kur të plotësohet kushti. Në konstruktet e kushteve, nëse plotësohet ky kusht, vetëm një rresht kodi do të ekzekutohet nëse kodi nuk është i mbyllur në kllapa kaçurrelë, domethënë nëse trupi i kodit të ekzekutuar me kusht nuk është formuar. Le të shqyrtojmë dy opsione të kodit:

Opsioni i parë:

Int x = 56; bool check_x() (nëse (x > 0) x = 0; kthe e vërtetë; kthe e gabuar; )

Në këtë kod, ktheni true; Do të ekzekutohet gjithmonë, sepse vetëm vargu x = 0 është i rëndësishëm për kodin që ekzekutohet;

Opsioni i dytë:

Int x = 56; bool check_x() (nëse (x > 0) (x = 0; kthe e vërtetë; ) kthe false; )

Në këtë kod, ktheni true; Do të plotësohet vetëm nëse plotësohet kushti x> 0.

Deklarata tjetër

tjetër Deklarata përdoret në lidhje me nëse deklaratë për të formuar një sekuencë kushtesh.

Int x = 56; bool check_x() (nëse (x > 0) ( x = 0; kthe e vërtetë; ) tjetër nëse (x< 0) { x = 0; return false; } else { return false; } }

Deklarata else mund të përdoret për të shtuar një kusht të ri nëse kushti i mëparshëm, përndryshe nëse deklarata dështon. Dhe si kod përfundimtar në një sekuencë kushtesh, nëse nuk plotësoheshin kushtet e mëparshme. Përndryshe, është e mundur të përdoren mbajtëset për trupin e kodit nëse kodi përshtatet në një rresht.

Ndërrimi i deklaratave, rasti, pushimi, parazgjedhja

rasti i çelësit konstrukti përdoret për zgjedhjen e degëzimit të kodit, në gjendjen e të cilit zgjedhja bëhet me vlera të plota. Kjo do të thotë se rasti i ndërprerës mund të përdoret vetëm për vlera të plota, numërime dhe përzgjedhje nga kodi i simbolit.

Int x = 100; bool check_x() ( switch (x) (rasti 0: kthen true; rasti 50: x = 0: break; rasti 100: kthen false; parazgjedhje: ktheje false; )

Në kodin e mësipërm, ndryshorja x kontrollohet të jetë e barabartë me numrat 0, 50, 100. Operatori i paracaktuar zgjedh kodin që ekzekutohet nëse nuk plotësohet asnjë nga kushtet. Vini re gjithashtu se në bllokun e kodit me rastin 50: shtuar një deklaratë break, kjo deklaratë del nga kushti, ndërsa deklarata kthyese del nga funksioni. Nëse nuk shtoni një deklaratë pushimi, ekzekutimi i kodit do të vazhdojë në rastin 100:. Për shkak të kësaj veçorie të ndërtimit të rastit të ndërprerësit, është e mundur të kombinohen kushtet për të cilat është e nevojshme të ekzekutohet i njëjti kod. Për shembull:

Int x = 100; bool check_x() ( switch (x) (rasti 0: rasti 50: rasti 100: ktheje e vërtetë; parazgjedhje: ktheje false; ) )

, për x të barabartë me 0, 50, 100, funksioni kthen true, ndërsa për të gjitha vlerat e tjera funksioni kthen false.

Gjithashtu, kodi për zgjedhjen e rastit në këtë konstrukt mund të mbështillet në blloqe kodi, të cilat do të kufizojnë shtrirjen dhe do të përdorin deklaratat e variablave me të njëjtin emër.

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 : kthe x;))

Kështu, duke kufizuar shtrirjen, ne jemi në gjendje të përdorim variabla me të njëjtin emër në kushte rasti. Por mos harroni se jashtë fushëveprimit, i kufizuar nga kllapa kaçurrelë, ndryshorja y nuk do të ekzistojë në këtë rast.

Operatorët e ciklit

Deklarata while

Deklarata while përsërit kodin në trupin e saj për sa kohë që plotësohet kushti. Për shembull:

Int i = 0; nderkohe une< 10) { i = i + 1; }

Në këtë kod unë do të jem 10 pas ciklit.

Deklarata do

Deklarata do përdoret së bashku me deklaratën while dhe lejon që trupi i ciklit të ekzekutohet të paktën një herë, përpara se të kontrollohet kushti i ciklit. Për shembull:

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

Në këtë kod, ndryshorja I nuk përputhet fillimisht me kushtin dhe në ciklin e zakonshëm while nuk është ekzekutuar kodi i trupit të ciklit, por duke qenë se përdoret cikli do-while, testi do të kryhet pasi trupi i ciklit të jetë ekzekutuar. Si rezultat, prodhimi i std::cout është:

Ju mund të pyesni, pse ka 0 në dalje? Nuk i përshtatet kushtit. Përsëri, për faktin se kontrolli kryhet pasi kodi është ekzekutuar në trupin e lakut. Kjo do të thotë, trupi i lakut është ekzekutuar, dhe më pas kryhet një kontroll, rezultati i të cilit cikli përfundon punën e tij.

Deklarata e pushimit

Ashtu si në rastin e ndërprerësit, kjo deklaratë mund të përdoret në sythe. Kjo është e nevojshme për të dalë nga cikli, përpara se të plotësohet kushti i ciklit. Për shembull:

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

Në këtë shembull artificial, një cikël i përjetshëm do të rezultonte sepse ndryshorja i zvogëlohet në vend që të rritet, dhe nga kushti i ciklit, prodhimi do të prodhohet vetëm nëse i është më i madh se 50. Por falë deklaratës break dhe kushtit të testit për vlerën negative të ndryshores i Ekzekutimi i programit do të dalë nga ky cikli sapo i bëhet më pak se 0.

Deklarata e vazhdueshme

Ky operator ju lejon të anuloni përsëritjen e një cikli dhe të filloni një përsëritje të re të ciklit përpara se të ekzekutoni të gjithë kodin në trupin e ciklit. Për shembull:

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

Kur ekzekutojmë këtë kod, marrim daljen e mëposhtme:

Kjo do të thotë, prodhimi i numrit 3 do të hiqet.

Deklarata për

Sythet me deklaratën for ju lejojnë të kombinoni inicializimin e variablave, gjendjen dhe ndryshimin e këtyre variablave.

Kjo është, cikli i mëposhtëm while

Int i = 0; nderkohe une< 10) {

Do të jetë ekuivalente me ciklin e mëposhtëm:

Për (int i = 0; i< 10; i++) { // ToDo Something }

Avantazhi i këtij cikli for do të jetë se ndryshorja I do të jetë në shtrirjen lokale të ciklit for.

Për sythe mund të inicializohen me disa variabla të të njëjtit lloj. Për shembull:

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

Gjithashtu, kushti mund të jetë deklarimi, inicializimi i një ndryshoreje. Për shembull:

Char cstr = "Përshëndetje"; për (int n = 0; char c = cstr[n]; ++n) ( std::cout<< c; }

Duke pasur parasysh standardin C++ 11, ndryshorja automatike mund të përdoret si lloj variabli, i cili ju lejon të nxirrni llojin e ndryshores nga iniciatori:

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

Gjithashtu një pikë interesante është se iniciatori, kushti dhe blloku i ndryshimit mund të jenë shprehja:

Int n = 0; për (std::cout<< "Loop start\n"; std::cout << "Loop test\n"; std::cout << "Iteration " << ++n << "\n") { if(n >1) pushim; )

Duke filluar me standardin C++11, për sythe, përsëritja është shtuar për kontejnerët që mbështesin përsëritjen. Për shembull, kontejneri vektorial nga biblioteka standarde:

Std::vektor v = (0, 1, 2, 3, 4, 5); për (konst int& i: v) std::cout<< i << " ";

Në këtë kod, ndërtimi i lakut është si më poshtë:

Për (Marrë nga kontejneri në çdo përsëritje të objektit: kontejner) ( // Trupi i ciklit )

Gjithashtu, sythe të bazuara në Range mbështesin deklaratën automatike. Për shembull:

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

Në këtë artikull ne do të vazhdojmë të studiojmë Bazat e PHP-së dhe flasim për cikle dhe kushte. Së pari, le të shohim konstruktin IF - ELSE, i cili ju lejon të kryeni veprime të caktuara në varësi të faktit nëse një kusht plotësohet apo jo. Pastaj ne do të kalojmë për të parë ciklet. Në total, do të merren parasysh tre dizajne të lakut - sythe WHILE, DO - WHILE dhe cikli FOR.

Bazat e PHP-së. IF–ELSE konstrukton

Konstrukti IF–ELSE lejon që disa veprime të kryhen në varësi të plotësimit të kushteve apo jo. Ky dizajn mund të përdoret gjerësisht në praktikë, për shembull, për të krijuar një mbrojtje të thjeshtë për një pjesë të një faqe interneti duke përdorur një fjalëkalim. Nëse përdoruesi fut fjalëkalimin e saktë, atij i jepet akses në seksionin privat. Përndryshe, mund t'i japim një mesazh gabimi, për shembull.

Në praktikë, konstrukti IF – ELSE duket kështu:

Pra le të komentojmë. Së pari, variablave u caktohen vlera. Pastaj vendoset një kusht. Nëse ndryshorja $a është e barabartë me variablin $b, atëherë ekzekutohet kodi që është në kllapat e para kaçurrelë. Nëse kushti nuk plotësohet, atëherë çdo gjë që është në kllapat e para kaçurrelë anashkalohet dhe kodi që është në kllapat kaçurrela pas ELSE ekzekutohet. Siç mund ta shihni, gjithçka është banale e thjeshtë dhe e qartë.

Përveç kushteve të thjeshta në PHP, mund të përdorni disa kushte dhe konstruksione IF – ELSE. Për shembull, le të shohim kodin e mëposhtëm:

"; nëse ($e != $c) (echo "Ndryshorja E nuk është e barabartë me variablin C
"; ) else (echo "Variabla E është e barabartë me ndryshoren C
"; ) ) else (echo "Ndryshoret nuk janë të barabarta
"; } ?>

Së pari, ne u caktojmë vlera specifike variablave. Pastaj ka konstruksione të mbivendosura IF – ELSE. Siç mund ta shihni në PHP, çdo konstrukt IF - ELSE mund të përmbajë konstruksione të tjera të ngjashme, numri i të cilave është, në parim, i pakufizuar.

Tani le të shohim shenjat që zbatohen në kushte.

  • == - në PHP kjo shenjë do të thotë barazohet. Shenja "=" në PHP është një shenjë caktimi.
  • != jo të barabartë, për shembull, $a != $b – ndryshorja $a nuk është e barabartë me ndryshoren $b.
  • dhe ose &&- domethënie DHE, për shembull, $a != $b && $c != $d – ndryshorja $a nuk është e barabartë me ndryshoren $b dhe ndryshorja $c nuk është e barabartë me ndryshoren $d.
  • ose ose ||- domethënie OSE, për shembull, $a != $b || $c != $d - ndryshorja $a nuk është e barabartë me ndryshoren $b ose ndryshorja $c nuk është e barabartë me ndryshoren $d.

Pra, ne kemi kuptuar interpretimin e të gjitha shenjave. Tani le të fillojmë të lexojmë kodin e mësipërm, i cili me fjalë mund të shprehet si më poshtë:

Nëse ndryshorja $a është e barabartë me variablin $b dhe ndryshorja $c është e barabartë me ndryshoren $d ose ndryshorja $e është e barabartë me ndryshoren $d, atëherë shfaqim mesazhin "Variablet janë të barabarta" dhe bëjmë një thyerja e linjës. Pastaj bëjmë një kontroll tjetër. Nëse ndryshorja $e nuk është e barabartë me variablin $c, atëherë shfaqim mesazhin "Ndryshorja E nuk është e barabartë me ndryshoren C" dhe bëjmë një thyerje rreshti. Nëse kushti nuk plotësohet, atëherë ne shtypim "Variabla E është e barabartë me ndryshoren C". Nëse kushti i parë nuk plotësohet, atëherë i gjithë kodi në kllapat e para kaçurrelë anashkalohet dhe menjëherë shfaqet mesazhi "Ndryshoret nuk janë të barabarta" dhe bëhet një ndërprerje rreshti (etiketa
).

Kjo përfundon shqyrtimin tonë të konstruksionit IF – ELSE. Shpresoj se e kuptoni të gjithë thelbin e asaj që u përshkrua më lart dhe ne vazhdojmë në studimin e mëtejshëm Bazat e PHP-së– studimi i cikleve.

Bazat e PHP. sythe WHILE dhe DO–WHILE

Loop-et në PHP kanë një aplikim shumë të gjerë, pasi ju lejojnë të zbatoni shumë funksione që janë të pranishme në çdo faqe interneti dinamike. Një nga detyrat më të zakonshme që mund të zgjidhet duke përdorur sythe është, për shembull, shfaqja e lajmeve më të fundit nga një sajt. E gjithë qëllimi i sytheve është të kryhet një veprim i caktuar për sa kohë që plotësohet një kusht. Si shembull, le të zgjidhim problemin e llogaritjes së shumës së numrave nga një në 10. Në këtë rast, numri i numrave mund të jetë cilido, por le të marrim si shembull numrin 10, pasi në këtë rast do të jetë më e lehtë të kontrolloni rezultatin.

Për të zgjidhur këtë problem ne do të përdorim WHILE lak. Kodi për të llogaritur shumën e numrave nga një në dhjetë do të ishte:

Para së gjithash, ne krijojmë variablat $s (shuma) dhe $i (counter) dhe u caktojmë atyre vlera. Pastaj shkruajmë një cikli WHILE, në gjendjen e të cilit tregojmë se cikli duhet të ekzekutohet derisa ndryshorja $i (counter) të jetë më e vogël ose e barabartë me 10. Ne shkruajmë vlerën e ndryshores $s në trupin e lakoni dhe rrisni numëruesin $i me një. Kjo bëhet duke përdorur dy shenja + ($i++) ose thjesht duke shtuar një ($i = $i + 1). Vlera e numëruesit duhet të ndryshohet pa dështuar për të shmangur çiklizmin (ekzekutimi i ciklit të pafund).

Tani le të shohim se si ekzekutohet programi. Së pari caktojmë një vlerë për ndryshoret. Më pas, cikli kontrollon gjendjen. Nëse ekzekutohet, atëherë ekzekutohet kodi që është në trupin e lakut (në kllapa kaçurrelë). Pas ekzekutimit të trupit të lakut dhe rritjes së numëruesit, gjendja kontrollohet përsëri dhe, nëse është e vërtetë, laku përsëritet përsëri. Lakja do të përsëritet për sa kohë që plotësohet kushti. Pasi të ekzekutohet cikli, rezultati shfaqet në ekran duke përdorur operatorin e daljes Echo. Mund të lexoni më shumë rreth variablave dhe operatorëve të daljes në artikullin "".

Cikli DO – WHILE funksionon në një mënyrë të ngjashme. Dallimi i vetëm këtu është se kontrolli i gjendjes bëhet pasi të ekzekutohet cikli. Kështu, cikli do të ekzekutohet të paktën një herë në çdo rast. Në praktikë, cikli DO – WHILE duket kështu:

Siç mund ta shihni, në zgjidhjen e problemit të llogaritjes së shumës së numrave nga një në dhjetë duke përdorur ciklin DO - WHILE, vlerat u caktohen fillimisht variablave. Pastaj ekzekutohet kodi dhe rritet vlera e numëruesit dhe vetëm pas gjithë kësaj kontrollohet gjendja. Nëse përmbushet, atëherë cikli përsëritet përsëri. Përndryshe, rezultati shtypet në ekran duke përdorur operatorin e daljes.

Bazat e PHP-së. FOR Loop

Ju mund të përdorni një cikli FOR për të bërë të njëjtat gjëra që mund të bëni me një cikli WHILE. Përdoret gjithashtu gjatë krijimit të faqeve të internetit, por, për mendimin tim, në një masë më të vogël se cikli WHILE. Personalisht preferoj këtë të fundit, por në këtë artikull do të shikojmë edhe ciklin FOR, pasi është pjesë e gjuhës PHP dhe duhet ta dini.

Le të shohim zgjidhjen e problemit të mëparshëm duke përdorur një lak FOR. Kodi për të llogaritur shumën e numrave nga një në dhjetë duke përdorur një cikli FOR do të duket kështu:

Siç mund ta shihni, sintaksa e ciklit FOR është si më poshtë. Fillimisht inicializohen variablat, më pas specifikohet gjendja, pas së cilës tregohet veprimi që duhet të kryhet pas kalimit në një lak. Skematikisht do të duket diçka si kjo:

Për (inicializimi; kushti; veprimi pas ekzekutimit të një laku) (Trupi i lakut (veprim))

Siç mund ta shihni, Sintaksa PHP e ngjashme me sintaksën C++. Nëse keni studiuar C++, atëherë do ta keni më të lehtë të zotëroni PHP. Por edhe nëse nuk keni studiuar më parë gjuhë të tjera programimi, mund të zotëroni lehtësisht bazat e PHP, pasi është një nga gjuhët më të thjeshta të programimit.

Kjo përfundon këtë artikull mbi bazat e PHP. Nëse ju pëlqeu stili im i shkrimit të artikujve dhe vetë përmbajtja e tyre, mund të regjistroheni në lajmet e faqes në çdo mënyrë të përshtatshme për ju në artikullin "Abonimi".

Kjo eshte e gjitha. Ju uroj fat dhe shihemi së shpejti në faqet e blogut

Degëzimi(udhëzim i kushtëzuar) është një konstrukt i gjuhës programuese që siguron ekzekutimin e një komande të caktuar ose grup komandash vetëm nëse një shprehje e caktuar logjike është e vërtetë, ose ekzekutimi i një prej disa komandave (bashkësive të komandave) në varësi të vlerës së një të caktuar. shprehje.

Cikliështë një lloj strukture kontrolli e krijuar për të organizuar ekzekutimin e shumëfishtë të një grupi instruksionesh.

Degëzimi dhe unazat individuale bazohen në operatorë logjikë të krahasimit që përcaktojnë nëse duhet të ekzekutohen rreshtat e ardhshëm të kodit ose të kalojnë te të tjerët.

Operatorët e Krahasimit

Shumica operatorët e krahasimit të zbatueshme për vlerat numerike. Këta janë të gjithë operatorë binarë që kanë dy argumente numerikë, por kthejnë një vlerë Boolean.

  • > operatori "më i madh se".
  • >= operator më i madh ose i barabartë
  • < оператор «меньше»
  • <= оператор «меньше или равно»
  • != operatori "jo i barabartë".
  • == operatori ekuivalent

Dy të fundit operatori i krahasimit përdoren jo vetëm për vlerat numerike, por edhe për ato logjike. Krahasimi i dy operatorëve të tekstit bëhet duke përdorur metodat e barabartë (String Object), EqualsIgnoreCase (String Object).

Është shumë e rëndësishme të mos ngatërrohet operatori i ekuivalencës me operatorin e caktimit. Në shprehjet që përmbajnë operatorë të llojeve të ndryshme, fillimisht kryhen veprimet aritmetike, më pas operacionet e krahasimit, më pas veprimet logjike dhe së fundi caktimi.

Operatorët logjikë

Gjatë kryerjes së operacioneve të krahasimit ose caktimit, mund të jenë të pranishëm operatorë logjikë. Ekziston një operator logjik unar dhe disa binarë. Argumentet për të gjithë këta operatorë janë literale logjike (konstante), variabla logjike dhe shprehje që kanë një vlerë logjike.

Operatorët logjikë kanë përparësinë e mëposhtme: mohimi, lidhja, disjunksioni.

Ashtu si me operatorët aritmetikë, kllapat përdoren për të rregulluar përparësinë e një operacioni. Nëse një palë kllapa vendoset brenda një çifti tjetër kllapash, së pari vlerësohet vlera në kllapat e brendshme.

Shembuj të përdorimit të operatorëve logjikë

Boolean a = e vërtetë; boolean b; boolean c; b = a || e vërtetë; // b është e vërtetë b = !b; // b false System.out.println(b); // nxjerr vlerën false në tastierë a = a || b; // a është e vërtetë c = a && (a || b); // me System.out.println(c); // nxjerr në konsolë vlerën e vërtetë boolean m; logjike w; m = 5 >= 4; // e vërtetë m = 5 != 5 || i rremë; // false w = m == false; // true System.out.println(w); // shfaq vlerën e vërtetë në tastierë

Operatorët e Degëve

Sintaksa e deklaratës së degës nëse tjetër

Nëse (kushti) ( ... // operatori i përbërë nr. 1 ) tjetër ( ... // operatori i përbërë nr. 2 )

Nëse një deklaratë e përbërë në degën kryesore ose alternative të një deklarate kontrolli përmban vetëm një deklaratë të thjeshtë, atëherë kllapat kaçurrelë mund të hiqen. Në këtë rast, sintaksa e operatorit të degës do të marrë formën:

Nëse (kushti) ... // operatori i thjeshtë nr. 1; tjetër ... deklaratë e thjeshtë #2;

Qëllimi kryesor i operatorit të degës është të zbatojë algoritme të degëzimit. Për shembull, një fragment i një programi për të llogaritur funksionin: Y(x) = x*x, për x< 0 и Y(x) = 2*x, при x >= 0

Int x, y; // Leximi i vlerave x, y nga tastiera Scanner in = new Scanner (System.in); System.out.println ("Fut x:"); x = në.nextLine(); System.out.println ("Fut y:"); y = në.NextLine(); nëse (x< 0) y = x*x; else y = 2*x; System.out.printf ("Результат: %i\n", y);

Gjatë ndërtimit të programeve me disa deklarata të njëpasnjëshme të degëve, duhet të merret parasysh rregulli i mëposhtëm: deklaratë tjetër i referohet deklaratës së fundit nëse. Për shembull, merrni parasysh një fragment programi:

Nëse (x > 10.0) y = 2*x + 5; nëse (y< z) y = fabs(x); else y = 2.5*x;

Nëse është e nevojshme të prishet ky rend (d.m.th. degë tjetër referojuni operatorit të parë nëse), atëherë është e nevojshme të përfshihet pohimi i dytë if në operatorin e përbërë të degës direkte të deklaratës së parë if:

Nëse (x > 10.0) (y = 2*x + 5; nëse (y< z) y = fabs(x); } else y = 2.5*x;

Në programim, shpesh ekziston nevoja për të krijuar deklarata të degëve në kaskadë. Sintaksa e një strukture të tillë është:

Nëse (kushti nr. 1) (kushti nr. 1) tjetër nëse (kushti nr. 2) (kushti i përbërë nr. 2) ... ( ) tjetër nëse (kushti nr. N) (deklarata e përbërë nr. N) tjetër (deklarata e përbërë nr. N+ 1 )

Degëzimi me shumë variante, deklaratë switch

Dizajn nese Tjeter mund të jetë e papërshtatshme nëse përballeni me zgjedhjen e disa opsioneve. Operatori kaloni ofron një mënyrë të qartë për të kaluar midis pjesëve të ndryshme të kodit bazuar në vlerën e një ndryshoreje ose shprehjeje të vetme. Forma e përgjithshme e këtij operatori është:

Ndërprerës (zgjedhja) (vlera e rastit 1: ndërprerje; vlera e rastit 2: ndërprerje; vlera e rastit: ndërprerje; parazgjedhje: )

Ekzekutimi i kodit fillon në etiketë rast, që korrespondon me vlerën e shprehjes zgjedhje, dhe vazhdon deri në deklaratën tjetër thyej ose fundi i deklaratës kaloni. Nëse asnjë etiketë nuk përputhet me vlerën e ndryshores, seksioni i paracaktuar ekzekutohet, nëse ofrohet.

Vini re se etiketa rast duhet të jetë një numër i plotë. Ju nuk mund të kontrolloni vargjet. Të gjitha vlerat e rastit duhet të jenë fjalë për fjalë unike. Nëse dy deklarata të rasteve përmbajnë të njëjtat vlera, përkthyesi do të gjenerojë një mesazh gabimi.

Vini re se deklarata e paracaktuar është fakultative. Në rastin kur asnjë nga deklaratat e rastit nuk përputhet me vlerën e shprehjes dhe në kaloni nuk ka asnjë deklaratë të paracaktuar Ekzekutimi i programit vazhdon me deklaratën pas deklaratës switch.

Nëse rasti nuk përfundon me një deklaratë pushimi, atëherë pas seksionit të rastit aktual do të ekzekutohet ai tjetër. Ndonjëherë është e përshtatshme që të ketë disa seksione të njëpasnjëshme të rasteve në një deklaratë switch, jo të ndara nga një deklaratë ndërprerjeje.

sythe java

Ekzistojnë dy lloje të sytheve në java:

  • lak si "ndërsa" - ndërsa dhe bëj...ndërsa
  • lloji "n-time" - për (initializimi; kushti; përsëritja)

Lloji i parë i "ndërsa" është krijuar për të përsëritur disa veprime për sa kohë që plotësohet një kusht. Shembull: rrisni vlerën e një ndryshoreje me 3 derisa të arrijë tre shifra.

Lloji i dytë "n-time" synon të përsërisë disa veprime një numër të paracaktuar herë. Shembull: gjeni faktorialin e 6.

Ndërsa dhe bëj...while sythe

Operatori derisa përsërit veprimet e specifikuara për sa kohë që shprehja e tij ka një vlerë të vërtetë.

Ndërsa sintaksa e ciklit

Ndërsa (shprehje logjike) ( ... // trupi i ciklit )

Një shembull i daljes së vlerave të grupit në tastierë:

String lst = ("Dimër", "Verë", "Vjeshtë", "Pranverë"); int i = 0; ndërsa (i++< lst.length){ System.out.print(lst[i] + " "); }

Kushti për nevojën për të përsëritur ciklin kontrollohet para çdo hapi të ciklit, duke përfshirë atë të parën.

Java gjithashtu ofron mundësinë për të përdorur një lak me testimin pas gjendjes. Për ta shkruar atë, përdoret një konstruksion operatorësh bej Nderkohe.

Bëj ( ... // trupin e ciklit ) while (shprehje logjike)

Cikli i mëposhtëm do të ekzekutohet 4 herë dhe "1 2 3 4" do të printohet në tastierë:

Int i = 0; do (i++; System.out.print(Integer.valueOf(i) + " "); ) while(5 > i);

Trupi i lakut bej Nderkohe ekzekutuar të paktën një herë. Ky operator është i përshtatshëm për t'u përdorur kur një veprim në program duhet të kryhet të paktën një herë, por në kushte të caktuara do të duhet të përsëritet shumë herë.

për lak

Operatori për përmban tre parametra: parametri i inicializimit, parametri i përsëritjes, parametri i përsëritjes.

për sintaksën e ciklit

Për (inicializimi; kushti; përsëritja) ( // trupi i lakut, d.m.th. veprimet e përsëritura në mënyrë ciklike)

Parametri i parë përcakton një variabël që do të përdoret për të numëruar numrin e përsëritjeve të lakut. Quhet banak. Numëruesit i jepet një vlerë fillestare (ata tregojnë se nga cila vlerë do të ndryshojë). Parametri i dytë tregon disa kufizime në numërues, d.m.th. me çfarë vlere do të ndryshojë. Parametri i tretë specifikon një shprehje që ndryshon numëruesin pas çdo hapi të ciklit. Zakonisht kjo është një rritje ose zvogëlim, por mund të përdorni çdo shprehje ku numëruesit do t'i caktohet një vlerë e re.

Programi i paraqitur shfaq vlerat e grupit në tastierë:

String lst = ("Dimër", "Verë", "Vjeshtë", "Pranverë"); // në rend të drejtpërdrejtë për (int i = 0; i< lst.length; i++) { System.out.print(lsti] + " "); } // в обратном порядке for (int i = (lst.length - 1); i >= 0; i--) ( System.out.print(lsti] + " ");

Në një cikël, mund të vendosni disa numërues njëherësh. Për ta bërë këtë, ju duhet të ndani disa shprehje në përsëritje dhe inicializim me presje. Mund të specifikohet vetëm një kusht përsëritjeje, por mund të jetë një shprehje që përmban disa numërues njëherësh.

Kodi i paraqitur do të nxjerrë sekuencën e mëposhtme në tastierë: "0 -1 -4 -9 -16 -25"

Për(int a = 0, b = 0; a - b<= 10; a++, b--){ System.out.print(" " + a*b); }

Ndërprerja e një cikli, pushim

Për të përfunduar herët ciklin, përdorni operatorin thyej. Në këtë rast, ka një dalje të menjëhershme nga cikli; hapi aktual nuk do të përfundojë. Ato. nëse pas pushimit ka pasur deklarata të tjera, ato nuk do të ekzekutohen.

Shembuj të sytheve të ndërprerjes:

// Ndërpreni ciklin for për (int a = 1; a<= 10; a++){ if (a == 5) break; System.out.println("a = " + a); } // Прерывание цикла while int s = 100; while(true) { System.out.print(s +" "); s = s / 2; if (s == 0) break; System.out.println("s = " + s); }

Ndërprisni ciklin, vazhdoni

Për të ndërprerë ciklin mund të përdorni operatorin vazhdojnë. Ndryshe nga deklarata break, e cila përfundon ciklin, deklarata e vazhdimit thyen vetëm hapin aktual të ciklit dhe transferon kontrollin në fillim të ciklit.

// Ndërprerja e ciklit ndërsa int s = 100; while(true) (‘System.out.print(s +" "); s = s / 2; if (s == 25) vazhdon; ndryshe if (s == 0) ( break; ) other System.out .println ("s = " + s);

Në shembull, nëse vlera e s është e barabartë me 25, përsëritja tjetër e lakut do të ndërpritet dhe kontrolli do të transferohet në fillim të ciklit.

Nëse operatori vazhdojnë përdoret në një lak për, atëherë do të transferojë kontrollin te operatori i rritjes së numëruesit të ciklit.

Një nga mjetet më të rëndësishme në programim janë unazat. Ato janë të dobishme në rastet kur ju duhet të bëni diçka një numër të caktuar herë.

Nëse ekziston një detyrë e tillë, për shembull, të shfaqni rreshtin "përshëndetje të gjithëve" 1000 herë. Më pas, pa përdorur një lak, së pari do të duhet shumë kohë dhe së dyti, nuk do të duket shumë bukur. Kjo është arsyeja pse ju duhet të njihni ciklet në mënyrë perfekte sepse ato përdoren shumë, shumë shpesh.

Ekzistojnë katër unaza në programim, këto janë while, do-while, for dhe foreach. Secila prej tyre ka sintaksën e vet dhe secila përdoret në raste të caktuara.

Llojet më të përdorura janë for dhe foreach, të ndjekura nga while, dhe cikli do-while është shumë i rrallë.

Dhe ne do të fillojmë me ciklin while.

Sintaksa e lakut while është si më poshtë:


Së pari, ne deklarojmë variablin i, i cili është një numërues, dhe brenda ciklit e rritim këtë numërues. Brenda kllapave shkruajmë kushtin për hyrje/dalje nga laku.

Komentoni! Shkruani saktë gjendjen e daljes, përndryshe mund të ndodhë një lak pafund dhe më pas skripti do të ngrijë. Një cikël i tillë mund të ndodhë nëse, për shembull, thjesht shkruajmë true në kushtin e daljes.

Për shembull, le të shtypim vargun "Përshëndetje të gjithëve!" 10 herë.

Var i = 0; while(i "); i++; )

Ndryshorja i mund të fillojë nga 0 ose 1 ose nga çdo numër tjetër.

Kushti i daljes është në të njëjtën kohë kushti i hyrjes. Cikli funksionon si më poshtë: Së pari, kontrollon nëse ndryshorja i është më e vogël se 10, dhe nëse kushti është i vërtetë, atëherë futemi në cikli, përndryshe jo. Në këtë rast, nëse ndryshorja i është e barabartë me 30, për shembull, atëherë cikli nuk do të ekzekutohet, sepse 30 nuk është më pak se 10.

Hymë në cikël, shtypëm rreshtin "Përshëndetje të gjithëve", rritëm numëruesin dhe përsëri shkojmë te kushti, ku përsëri kontrollojmë nëse vlera e ndryshores i është më e vogël se 10, pastaj futemi në ciklin, përndryshe dalim prej tij. Dhe kjo ndodh deri në momentin kur kushti i hyrjes bëhet false, pra vlera e ndryshores i do të jetë 10. 10 nuk është më pak se 10, kështu që nuk hyjmë më në lak, por vazhdojmë.

Komentoni! Mos harroni të rritni numëruesin (i++), përndryshe do të përfundoni me një lak të pafund.

Ne kemi trajtuar ciklin while, tani le të kalojmë në ciklin do-while.

Sintaksa e ciklit do-while është si më poshtë:


Dallimi midis një cikli while dhe një cikli do-while është se një cikli do-while mund të ekzekutohet të paktën një herë, pavarësisht nga kushti, ndërsa një cikli while nuk do të ekzekutohet fare nëse kushti është false.

Komentoni! Ashtu si cikli while, mos harroni të rritni numëruesin i.

Le të kalojmë në praktikë. Për shembull, le të llogarisim prodhimin e numrave nga 1 në 10.

Var i = 1; prodhimi var = 1; do(prodhimi *= i; i++; ) ndërsa (i

Rezultati do të jetë numri 3628800. Në hapin e parë, ne u futëm menjëherë në lak, pavarësisht gjendjes së tij, ku u krye operacioni prodhim *= i (kjo është njësoj si prodhimi = prodhimi * 1). Më pas e shtojmë numëruesin. Pas rritjes, ai ka vlerën 2. Dhe në fund kontrollojmë kushtin, nëse vlera e numëruesit është më e vogël ose e barabartë me 10, atëherë kalojmë në përsëritjen tjetër të ciklit, përndryshe dalim nga cikli dhe vazhdojmë. .

për lak

Siç shkrova më lart, cikli for ndodh mjaft shpesh, kështu që duhet ta dini shumë mirë.

për sintaksën e ciklit tjetër:


Për një kuptim më të mirë, le të zgjidhim një problem të thjeshtë. Le të themi se duhet të llogarisim shumën e numrave nga 1 në 1000 duke përdorur një cikli for.

Var shuma = 0; për(var i = 1; i

E ruajmë dokumentin, e hapim në shfletues dhe shohim që rezultati është 500500.

Komentoni! Nëse ka vetëm një deklaratë në një lak, atëherë mbajtëset kaçurrela nuk janë të nevojshme.

Për të demonstruar, le të shfaqim disa vargje në ekran 5 herë, për shembull "Përshëndetje!"

Për(var i = 1; i

Komentoni! Pas ekzekutimit të ciklit, vlera e fundit mbetet në variablin i.

Tani le ta zgjidhim problemin pak më të komplikuar, për shembull duhet të shtypim vargun "Hello" 100 herë. Dhe në mënyrë që e gjithë kjo të mos shfaqet në një rresht, atëherë pas çdo përsëritje të 10-të, kalojmë në një rresht të ri. Dhe në fund do të printojmë vlerën e ndryshores i.

Për(var i = 1; i<= 100; i++){ document.write("привет!"); if(i % 10 == 0)  document.write("
"); ) document.write("

Variabla i = " + i + "

"); // i = 101

për çdo lak Zakonisht përdoret për të përsëritur mbi objekte dhe vargje. Prandaj, unë do të flas për të në artikullin që përshkruan punën me vargje.

deklaratë pushimi synohet të dalë me forcë nga laku.

Vazhdo operator ju lejon të ndërprisni përsëritjen aktuale të ciklit dhe të kaloni në tjetrin.

Për një kuptim më të mirë, do të zgjidhim edhe një problem të thjeshtë. Le të themi se duam të llogarisim shumën e numrave tek nga 1 në 20. Dhe kur të arrijmë përsëritjen e 15-të, do të dalim nga cikli.

Var shuma = 0; për(var i = 1; i<= 20; i++){ //Пропускаем текущею итерацию цикла if(i % 2 == 0) continue; summa += i; //Выходим совсем из цикла. if(i == 15) break; document.write(i + ". Итерация
"); ) document.write("

përmbledhje= " + përmbledhje + "

"); //summa = 64

E ruajmë dokumentin, e hapim në shfletues dhe shikojmë rezultatin.

Për të praktikuar, provoni të ndryshoni skriptin e shkruar në mënyrë që ai të llogarisë shumën e numrave çift.

Kjo përfundon këtë artikull. Tani ju e dini sintaksa e while, do-while, për sythe dhe si të punohet me to. U takuam edhe ne thyejnë dhe vazhdojnë deklaratat.

Artikujt më të mirë mbi këtë temë