Šiandien pamatysime srauto valdymo struktūras, dar vadinamas tiesiog valdymo struktūromis arba ypač iteracinėmis struktūromis. Šios instrukcijos yra labai įdomios ir naudojamos keičiant koncepciją iš programos į protingą programą.
Kodėl?
Jei nenaudojame srauto valdymo struktūrų, programa yra paprasta. Tai programa, kuri iš pradžių naudoja tik kintamuosius ir operatorius, kuriuos galime vadinti nurodymų seka linijiniu laiku, tai yra vienas po kito.
Pristatydami struktūras, kurias matysime toliau, mūsų programa nustoja būti tik linijinė neefektyvių nurodymų seka, kad taptų programa, galinčia priimti sprendimus, priklausomai nuo kintamųjų, kuriuos ji tvarko, vertės, todėl jie vadinami „protingais“ .
The iteracinės struktūros jie taip vadinami todėl, kad turi būti vykdomi nurodymai galima kartoti vieną ar kelis kartus. Yra daug įvairių iteracinių struktūrų tipų ir jų ypatumų, tačiau jie visi turi kažką bendro, jie turi vieną įėjimo tašką, tai yra, jie įjungiami įvedant duomenis.
Dabar pamatysime skirtingų tipų iteracinės struktūros „JavaScript“Nors iš tikrųjų visose ar beveik visose programavimo kalbose iš esmės yra tos pačios struktūros ir jos skirtos tiems patiems tikslams, skirtumas yra jų rašymo būdas, tai yra sintaksė.
Pradėsime nuo iteracinės struktūros, kuri yra turbūt pati paprasčiausia ir dažniausiai naudojama. Turime omenyje struktūrą jei.
IF struktūraAš sakau, kad tai yra paprasčiausia nuo tada, kai buvo įvesta informacija, ir ją patikrinus, ką daro mūsų programa, yra tai, kad jei įvykdyta iš anksto nustatyta sąlyga, vykdome sakinį ar sakinius, kuriuos iš anksto nustatėte kode. Kita vertus, jei ši sąlyga nėra įvykdyta, ji palieka struktūrą ir nevykdo ją lydinčio kodo.
Pavyzdys su „Javascript“ kodu yra toks:
If (x) {alert ("Reikšmė teisinga"); }Taip paprasta. Vienintelis dalykas, kurį sakome, yra tas, kad jei įvestas kintamasis (x) yra teisingas, parašykite „The value is true“, o jei jis netiesa, nieko nerašykite. Jis taip pat gali būti išreikštas if (x == true) labai svarbu nepainioti == operatoriaus, kuris lygina abi reikšmes su = Tai reiškia, kad vertė kairėje priskiriama dešinėje.
Ši struktūra pati naudojama labai dažnai pasikartojančiai patvirtinti bet kokio tipo įvestą informaciją, tačiau paprastai ją papildo kita struktūra, vadinama Kitas.
Kita vertus naudojamas kaip papildymas, jei nuo tada, jei sąlyga, nustatyta, jei nėra įvykdyta, ir tęsiasi su kita, su minėta valdymo struktūra susijusi ataskaita ar teiginiai automatiškai vykdomi, kaip matyti iš šio pavyzdžio:
If (x) {alert ("Reikšmė teisinga"); } else {alert ("Vertė klaidinga"); }Kaip ir ankstesniame pavyzdyje, jei įvesti duomenys, x, yra teisingi, parašykite „The value is true“. Skirtumas nuo ankstesnio pavyzdžio, kuriame, jei x nebuvo tiesa, jis nieko nedarė, yra tai, kad dabar, kaip ir kitur, jis tiesiogiai rašo „Vertė klaidinga“.
Tai labai naudinga, jei informacija gali būti tikra ar klaidinga, juoda arba balta, taip arba ne, arba bet koks kitas dvejetainis derinys, arba vienas ar kitas. Tačiau dažniausiai būna atvejų, kai norime sužinoti, ar įvesti duomenys atitinka bet kurį iš kelių sąlygos, kurios yra išskirtinėsPavyzdžiui, jei norime sužinoti, ar mūsų žaidėjas yra gynėjas, vidurio puolėjas, vartininkas ar puolėjas. Tai visada bus tik vienas iš keturių dalykų, o čia „jei ir kitaip“ mums netinka.
Šiuo atveju galime naudoti kitaip, jei struktūra ką tai reiškia, jei ne. Mes galime naudoti visa kita, jei to visada norime po pirmosios struktūros ir prieš paskutinę, kuri bus kita, kaip matome šiame kode:
If (žaidėjas == vartininkas) {alert („Žaidėjas yra vartininkas“); } else if (žaidėjas == gynyba) {alert ("Žaidėjas yra gynyba"); } else if (žaidėjas == vidurio puolėjas) {alert ("Žaidėjas yra vidurio puolėjas"); } else {alert ("Žaidėjas yra į priekį"); }Tokiu būdu programa pirmiausia patikrina, ar tai vartininkas. Jei taip, jis tai rašo, jei nenueina prie pirmojo kito, ar patikrinti, ar tai gynyba. Jei taip, užsirašykite. Jei jo nėra, jis eina į kitą bloką patikrinti, ar jis yra vidurio puolėjas. Jei taip, užsirašykite. Jei tai nėra bet kuri iš trijų parinkčių, jis įrašomas į paskutinį bloką.
Struktūros, kurias ką tik matėme, nėra veiksmingos, jei patikrinimai labai kartojasi, tokiu atveju kitos kontrolės struktūros, pvz. tuo tarpu arba daryk, kol:
WHILE kilpaŠi struktūra yra žinoma kaip algoritmas. Ir kaip sako pati reikšmė, tai yra ciklas, vykdantis instrukcijas tuo tarpu sąlyga ar sąlygos išlieka teisingos, kol ji ir toliau pateikia vertę „tiesa“.
Todėl, struktūra minėta kilpa yra labai paprasta:
kol (sąlyga)
{
instrukcijos;
}
A paprastas „JavaScript“ pavyzdys tai gali buti taip:
var skaitiklis = 1; while (skaičius <5) {alert ("num"); skaičius + = 1; }Tai taip paprasta, kaip pridėti po vieną prie mūsų kintamojo numerio, kol jis pasieks 5.
Kas atsitiks, jei sąlyga nebus įvykdyta prieš įvedant ciklą?
Kad kilpa niekada neveiktų. Ir čia mes pasiekiame ypatingą „loop“ tipo pavadinimą daryti kol. Ši struktūra naudojama, jei norime, kad programa bent kartą įeitų į kilpą. Pažodinis vertimas yra do… jei bent vieną kartą, įveskite ciklą.
Kodėl jis bent kartą patenka į mūsų kilpą?
Kadangi, kaip matysime žemiau, sąlyga įvykdyti ciklą atliekama ją atlikus. Tai gali atrodyti sudėtinga, bet pamatysime, kad tai labai paprasta:
var faktas = 1; var num = 10; daryti {faktas = num * faktas; num--; } while (skaičius> 0); įspėjimas (num);Tai būtų pavyzdys.
Kas atsitinka šiame pavyzdyje?
Tai pirmiausia patenka į kilpą ir duoda du nurodymus, padaugindami rezultatą iš skaičiaus ir tada sumažindami skaičių. Šis procesas kartojamas tol, kol mūsų skaičius yra 1. Išeidami iš ciklo, parašykite skaičių, kuris iš pradžių buvo 10, o dabar yra 1.
Tada ši kilpa gali būti parašyta lygiai taip pat. Kita vertus, jei inicializuojant var num = 0; įeina į kilpą, ar instrukcijos ir numeris lieka su reikšme -1, o tai neįvyktų tuo metu, kai jis neįeitų į kilpą, ir taip padarė vieną kartą.
Akivaizdu, kad tai labai paprastas pavyzdys, mažai naudojamas, tačiau programuojant labai įdomu, jei norime, kad meniu būtų rodomas bent kartą.
Pamatę „while“ ir „do while“ ciklą, pamatysime, mano manymu, labiausiai naudojamą programuojant. Mes kalbame apie garsiąją kilpą dėl.
Dėl struktūrosTai yra dažniausiai naudojama kilpa dėl savo efektyvumo, nors ji yra sudėtingesnė nei ankstesnės iteracinės struktūros.
Ji turi tokią formą:
už (įsakymas inicializacija; būklė; tvarka atnaujinti)
{
Vykdymo instrukcijos
}
Ir jo operacija labai paprasta:
Pirmoje ciklo dalyje inicijuojamas vienas ar daugiau kintamųjų, tai yra, jiems suteikiama reikšmė. Po pirmojo kabliataškio apibrėžiama sąlyga, kuri turi būti įvykdyta norint vykdyti instrukcijas. Paskutinė skliaustelių dalis, atnaujinimas, yra vertė, kuri bus priskirta inicializuotiems kintamiesiems.
Labai paprasta, jei įvykdyta nurodyta sąlyga, vykdomos ciklo instrukcijos. Ją įvykdę atnaujiname sąlygoje naudojamų kintamųjų vertę.
Dabar pamatysime parašytą pavyzdį Javascript:
for (i = 0; i <10; i ++) {alert („Vis dar mažiau nei 10“); }Sukūrėme ir inicializavome kintamąjį i, kurio vertė yra 0. Svarbu nepamiršti, kad ši ciklo dalis vykdoma tik pirmą kartą, likusį laiką į ją neatsižvelgiama, nes ji inicijuojama tik vieną kartą . Mūsų būklės zona yra tol, kol i yra mažesnis nei 10, todėl mūsų ciklas kartosis, kol i bus ne mažesnis kaip 10.
Dabar prasideda atnaujinimo zona. Jei i reikšmė nebūtų pakeista, kaip mes ją inicijavome iki 0, ji taptų begaline kilpa.
Atnaujinimo zonoje keičiame kintamojo vertę. Pavyzdžio atveju kiekvieną kartą, kai vykdoma kilpa, i reikšmė padidinama 1, tačiau taip pat gali būti nustatytos kitos instrukcijos, tokios kaip daugyba, atimtis ir kt.
The už kilpą yra labai naudingas programavimo pasaulyje ir, nors ir rečiau, yra specialus atvejis. Nors tai dažniausiai naudojama programuojant objektus, kurie jau yra gana pažengę, masyvo naudojimas yra įdomus.
Kilpa už tai, ką ji daro, yra efektyviai praeiti per masyvą, einantį per visus jo elementus. Apibrėžtas masyvas, kodas yra toks:
var array = ["Pirmasis", "Antrasis", "Trečiasis", "Ketvirtasis"]; for (i masyvuose) {alert ("Kursas: masyvas (i)"); }Jis rašo visus turimus kursus nuo pirmo iki ketvirto.
Galiausiai, mes kalbėsime apie kitą dažniausiai naudojamą srauto valdymo struktūrą, tai yra jungiklio kilpa, o tai reiškia pasirinkti anglų kalba.
SWITCH kilpaMes naudojame šią struktūrą beveik visada, kai norime sudaryti meniu su įvairiomis jo parinktimis. Tai tam tikras optimizavimas, kaip kartoti „else if“ ciklus, kuriuos matėme anksčiau ir kurie veikia daug geriau ir nebūna nereikalingi. Mes jį naudojame tais atvejais, kai norime kelis kartus patikrinti tą patį kintamąjį, tai yra, pasirinkti charakteristiką, o ne kintamąjį, kuris neleidžia jam turėti kito.
The jungiklio forma yra kitas:
jungiklis (raidė) {atvejis a: instrukcijos; pertrauka; b atvejis: instrukcijos; pertrauka; c atvejis: instrukcijos; pertrauka; d atvejis: instrukcijos; pertrauka; numatytasis: instrukcijos; pertrauka; }Ankstesnė kilpa perduodama kintamasis, šiuo atveju raidė. Jis tikrina šį kintamąjį ir, priklausomai nuo to, kurį jis įveda, atlieka vieną ar kitą nurodymą ir tada išeina iš ciklo. Norėdami įvesti kiekvieną iš galimų mūsų raidžių kintamojo parinkčių, naudojamas rezervuotas žodžių rašymas. Iš kilpos išeinama naudojant raktinį žodį break, kuris yra a šuolio instrukcija, kuri nutraukia arba keičia programos eigą, tokiu atveju priversti kilpą išeiti per anksti. Tačiau įvesti šį žodį nėra privaloma.
Tokiu būdu mes nenutrauktume programos srauto ir patikrintume likusias parinktis (kad žinome, kad tai netiesa) todėl jis bus mažiau optimalus. Labai svarbu pažymėti, kad patikrinimai atliekami eilės tvarkaTodėl, jei žinome, kuri parinktis ar parinktys bus naudojamos daugiausia, geriau jas išdėstyti pirmiausia.
The Numatytoji reikšmė kode matome tą, kuris naudojamas, jei įvesta reikšmė nesutampa. Tokiu atveju jis automatiškai pereina prie numatytųjų. Tačiau neprivaloma į mūsų kodą įtraukti numatytųjų.