Javascript nëse plotësohen dy kushte, nxirrni mesazhin. Operatorët e kushtëzuar. Kushtëzimi nëse deklaratë

JavaScript ka një konstrukt të kushtëzuar që ndikon në rrjedhën e ekzekutimit të një programi. Nëse (në anglisht nëse) diçka është, diçka është e vërtetë, atëherë bëj një gjë, përndryshe (në anglisht tjetër) - bëj një tjetër.

Nëse deklarata

Le të hedhim një vështrim se si funksionon deklarata if, është e thjeshtë dhe nuk kërkon shumë shpjegim.

If (kushti) (kodi për të ekzekutuar nëse kushti është i vërtetë)

Simpleshtë e thjeshtë: nëse kushti është i vërtetë, atëherë kodi në bllokun (...) ekzekutohet.

Shifra e var \u003d 4; nëse (shifra \u003d\u003d 4) (dokumenti.write ("shifra është 4.");)

Mund të bëhet një kod i çuditshëm:

Shifra e var \u003d 4; nëse (e vërtetë) (dokumenti.write ("Kushti është i vërtetë.");)

Deklaratë tjetër

Një pohim tjetër mund të përdoret së bashku me një pohim if. Ai përkthehet në "ndryshe" dhe specifikon një kod alternativ.

Shifra e var \u003d 4; nëse (shifra

Vini re drejtshkrimin e ndryshëm të kllapave kaçurrelë në këtë shembull për thëniet nëse dhe tjetër. Nuk është e detyrueshme të shkruhet në këtë mënyrë, të dy sintaksat janë të sakta.

Deklarata tjetër mund të pasohet nga një deklaratë e re nëse. Kjo do të testojë kushte të shumëfishta.

Shifra e var \u003d 4; nëse (shifra

JavaScript nuk ka një deklaratë tjetër (me një fjalë) siç ka PHP.

Nëse duhet të ekzekutoni vetëm një deklaratë, atëherë format e teksteve bllokuese (...) janë të panevojshme. Në shembullin tonë, ju nuk keni nevojë t'i shkruani ato:

Shifra e var \u003d 4; nëse (shifra

Gënjen në JavaScript

Deklarata if (kusht) vlerëson dhe shndërron gjendjen (shprehjen) e kllapuar në boolian (e vërtetë ose e gabuar).

Le të përsërisim se ka një gënjeshtër në JavaScript.

  • Numri 0 (zero).
  • Vija boshe "".
  • False Boolean :)
  • Vlera është nul.
  • Vlera është e papërcaktuar.
  • Vlera NaN (Jo një numër).

Çdo gjë tjetër është e vërtetë.

Disa gabime të mundshme:

If ("false") dokument.write ("Kjo është e vërtetë.
"); if (false) document.write (" Kjo është e vërtetë.

");

Këtu duhet të dalloni vargun "false" (në thonjëza), nga vlera e tipit boolean false.

If ("") document.write ("Kjo është e vërtetë.
"); other document.write (" Kjo është false.
");

Këtu duhet të dalloni vargun "" (brenda një hapësire), nga vargu bosh "". Një hapësirë \u200b\u200bbrenda një vargu e bën atë jo bosh, por një karakter që përmban. Për përkthyesin, nuk ka rëndësi një shkronjë ose një hapësirë \u200b\u200b- një simbol është një simbol.

Kushte të tjera në JavaScript

  • Ndërtimi i ndërprerësit JavaScript.
  • Pikëpyetja e operatorit

var a \u003d 10; var b \u003d (a\u003e 1)? 100: 200; alarm (b);

Nëse gjendja a\u003e 1 është e vërtetë, atëherë ndryshorja b caktojë vlerën 100 , përndryshe variablit b i është caktuar vlera 200 .

Detyra Js 3_4. Përfundimi i kodit: 3 ndryshore lokale deklarohen duke përdorur fjalën kyçe var. Necessaryshtë e nevojshme të caktohet vlera e operatorit ternar vijues në ndryshoren max: nëse a është më e madhe se b, atëherë kthejmë a, përndryshe kthejmë b.
Copëza e kodit:

nëse (a * b< 6) { result = "Мало"; } else { result = "Много"; }


Pyetjet për vetëkontroll:

  1. Cila është sintaksa për operatorin ternary?
  2. Sa argumente ka operatori ternar?

Ndërroni operatorin në javaScript - ndërroni

Deklarata e ndërprerësit javascript përdoret për të testuar një ndryshore për vlera të shumëfishta:

Sintaksë:

ndërprerësi (ndryshorja ose shprehja) (opsioni i rastit 1: // .. bllok deklarate .. ndërprerje opsion 2: // .. bllok deklarate .. prishet parazgjedhur: // .. bllok deklarate ..)

Vlera e një ndryshoreje ose shprehjeje kontrollohet: në secilën rast një nga vlerat kontrollohet, në rastin e një vlere të përshtatshme, një ose një bllok tjetër i deklaratave që korrespondojnë me këtë rast.

Blloku që fillon me parazgjedhjen e fjalës së shërbimit mund të hiqet. Deklaratat e bllokut do të ekzekutohen nëse asnjëra nga vlerat e listuara nuk është fare rast nuk përshtatet.

E rëndësishme: Deklarata e ndërprerjes kërkohet pas secilës vlerë të konsideruar të ndryshores (pas secilës rast); nëse nuk e përdorni, atëherë do të shfaqen të gjithë operatorët më poshtë

Krahasoni me operatorin NESE:

var a \u003d 2; ndërprerësi (a) (rasti 0: // if (a \u003d\u003d\u003d 0) rasti 1: // if (a \u003d\u003d\u003d 0) alarm ("Zero ose një"); // pastaj dalja ... break; case 2: // nëse (a \u003d\u003d\u003d 2) sinjalizim ("Dy"); // atëherë shfaq ... pushim; parazgjedhur: // tjetër alarm ("Shumë"); // ndryshe shfaq ...)

Si mund të grupoj opsione të shumta?

Për të ekzekutuar të njëjtët operatorë, është e mundur të grupohen disa rast... Si në shembullin e mësipërm:

Rasti 0: rasti 1: alarm ("Zero ose një"); pushim; ...

Me a \u003d 0 dhe a \u003d 1, ekzekutohet e njëjta deklaratë: alarm ("Zero ose një");

Shembulli 4: Nxisni përdoruesin të futë një ngjyrë. Shfaqni përkthimin anglisht të ngjyrës së futur. Për ngjyrën "blu" dhe "blu" ktheje të njëjtën vlerë.


✍ Zgjidhja:
  • Krijoni një faqe në internet me skelet dhe etiketë HTML skenari.
  • Inicimi i një ndryshoreje ngjyrë
  • var ngjyra \u003d prompt ("Çfarë ngjyre?");

    var ngjyra \u003d prompt ("Çfarë ngjyre?");

  • Kontrolloni vlerën e një ndryshoreje duke përdorur konstruktin ndërroj, nxjerrja për secilën vlerë - përkthimi përkatës:
  • ndërprerës (me ngjyra) (rasti "i kuq": alarm ("i kuq"); pushim; rasti "jeshil": alarm ("i gjelbër"); pushim; // ...

    Nëse ndryshorja ngjyrëka vlerën "e kuqe", pastaj shfaqni përkthimin në dritaren modale - "e kuqe" dhe dilni nga konstruksioni (pushim;). Nëse ndryshorja ngjyrë ka vlerën "jeshile", pastaj shfaqni përkthimin në dritaren modale - "jeshile" dhe dilni nga konstruksioni (pushim;).

  • Për lulet "blu" dhe "blu" bëj grupimin:
  • // ... rasti "blu": rasti "blu": alarm ("blu"); pushim; // ...

    Nëse ndryshorja ngjyrëështë blu ose i ndryshueshëm ngjyrëka vlerën "blu", pastaj shfaqni përkthimin në dritaren modale - "blu" dhe dilni nga konstruksioni (pushim;).

  • Organizoni prodhimin për ato ngjyra që nuk sigurohen nga programi:
  • // ... parazgjedhur: alarm ( "ne nuk kemi asnjë informacion mbi këtë ngjyrë")) // ndërprerësi

    // ... parazgjedhur: alarm ("y nuk kemi informacion për këtë ngjyrë")) // ndërprerësi

  • Testoni skenarin në një shfletues.

Detyra Js 3_6. Gjeni dhe rregulloni gabimet në fragmentin e kodit vijues:

14 15 16 17 numri var \u003d prompt ( "Vendos numrin 1 ose 2:"); ndërroni (numrin) (rasti "1" (shkruani dokumentin ("Një");); prisni; rasti "2" (shkruani dokumentin ("Dy");); prisni; parazgjedhur (dokument. shkruani ( "Keni futur një vlerë tjetër nga 1 dhe 2") ; } ; }

var number \u003d prompt ("Vendos numrin 1 ose 2:"); ndërprerësi (numri) (rasti "1" (dokument.write ("Një");); pushim; rasti "2" (document.write ("Dy");); break; default (document.write ("Ju futët një vlerë tjetër nga 1 dhe 2 "););)


Detyra Js 3_7. Çfarë do të shfaqet në ekran kur ekzekutohet kodi i mëposhtëm?:

1 2 3 4 5 6 7 8 9 10 11 12 13 vlera var \u003d "2"; ndërprerësi (vlera) (rasti "1": rasti "2": rasti "3": document.write ("Përshëndetje"); pushim; rasti "4": rasti "5": document.write ("Bota"); parazgjedhur: document.write ("Gabim");)

vlera var \u003d "2"; ndërprerësi (vlera) (rasti "1": rasti "2": rasti "3": document.write ("Përshëndetje"); pushim; rasti "4": rasti "5": document.write ("Bota"); parazgjedhur: document.write ("Gabim");)


Detyra Js 3_8. Përdoruesit do t'i kërkohet një numër - numri i sorrave në degë. Në varësi të numrit të futur (jo më shumë se 10), shfaqni mesazhin: - Ulur në një degë 1 sorrë - Ulet në një degë 4 sorra - Ulet në një degë 10 sorra

  1. Në varësi të numrit të futur, fundi i fjalës ndryshon "sorrë".
  2. Për të kontrolluar, përdorni operatorin Switch javascript.
  3. Ruani këtë faqe në dosjen e rezultateve (do të jetë e dobishme për punë të mëtejshme).


Pyetjet për vetëkontroll:

  1. Kur këshillohet të përdoret konstruksioni si një operator i kushtëzuar kaloni?
  2. Për çfarë shërben blloku i parazgjedhur? kaloni?
  3. A është e detyrueshme të përdoret deklarata e ndërprerjes në ndërtim kaloni?
  4. Si kryhet grupimi për shumë variante të vlerës në një operator kaloni?

Operatorët ciklikë të gjuhës javaScript - Për

Sintaksë:

for (vlera fillestare e njehsorit; kushti; rritja e numëruesit) (//..bllokimi i deklaratave ..)

E rëndësishme: Një lak në javascript për përdoret kur dihet paraprakisht se sa herë duhet të përsëriten veprimet ciklike (sa përsëritje lak)

  • Një shprehje e caktimit përdoret si vlera fillestare e njehsorit të përsëritjes: për shembull, i \u003d 0 - numëruesi i lakut fillon nga zero:
  • for (var i \u003d 0; kushti; rritja e numrit) (//..bllokimi i deklaratave ..)

  • Si një rritje counter, tregohet hapi me të cilin duhet të rritet counter: për shembull, tregon se çdo përsëritje e lakut do të shoqërohet nga rritja e tij me 1 :
  • për (var i \u003d 0; kushti; i ++) (//..bllokimi i deklaratave ..)

  • Kushti i lakut është vlera përfundimtare e njehsorit: për shembull, i10 ndalon lakun:
  • për (var i \u003d 0; i<10; i++) { //..блок операторов.. }

Le të shohim një shembull të përdorimit të një loop for në javascript:

Shembulli 5: Shtypni një sekuencë numrash 0 1 2 3 ... 9 , secila shifër në një rresht të ri. 0 1 2 ... 8 9


✍ Zgjidhja:
  • Për të shfaqur një sekuencë numrash, do të përdorim numëruesin e lakit for, i cili duhet të ndryshojë vlerën e tij nga 0 para 9 sipas sekuencës.
  • Prandaj, për vlera fillestare e njehsorit të ciklit vendosni vlerën në 0 ; si kushtet e ciklit vendosni vlerën përfundimtare - ii \u003d 9; hapi kundër duhet të jetë 1 (i ++) meqenëse ndryshimi midis anëtarëve të sekuencës është një:
  • për (var i \u003d 0; i<10; i++) { document.write(i+"
    "); }

    Në shembull, vlerat e njehsorit të lakut shfaqen në ekran, pasi rritja e njehsorit i ++, përkatësisht, do të shfaqet në ekran 0 1 2 3 ... 9 , me secilën shifër në një vijë të re (etiketë
    ).

  • Testoni skenarin në një shfletues.

Detyra Js 3_9. 1 para 15 .

  1. Përdorni një numërues loop si një rend të numrave për.
  2. Për një ndryshore mbledhëse, përdorni identifikuesin e ndryshores shuma.

Copëza e kodit:

Për (var i \u003d ...; ...; ...) (shuma \u003d shuma + ...;) ...

Deklaratat e daljes së lakut pushim dhe vazhdoj në javaScript. Operatori Dalja

Deklarata e ndërprerjes ndërpret ekzekutimin e të gjithë trupit të lakut, d.m.th. shpërthen nga cikli në javaScript.

Ndërsa deklarata vazhdim ndërpret ekzekutimin e përsëritjes aktuale të lakut, por, në të njëjtën kohë, vazhdon ekzekutimin e lakut nga përsëritja tjetër.

Le të shqyrtojmë funksionimin e ndërprerjes dhe të vazhdojmë deklaratat duke përdorur një shembull:

Shembull: Analizoni algoritmin e copës së kodit. Çfarë do të shfaqet?

Copëza e kodit:

1 2 3 4 5 6 për (var i \u003d 0; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
"); nëse (i \u003d\u003d 8) prishet;)

për (var i \u003d 0; i<10;i++) { if (i==4) continue; document.write(i+"
"); nëse (i \u003d\u003d 8) prishet;)


✍ Zgjidhja:
  • Linja e tretë e shembullit përmban një kusht për shkak të së cilës shifra 4 nuk do të shfaqet: operatori vazhdojdo të vazhdojë në përsëritjen tjetër të lakut pa përfunduar atë aktual.
  • Në rreshtin nr. 5, laku del, por numri 8 do të shfaqet, pasi deklarata e daljes vjen para kushtit (në rreshtin e 4-të). Duke u takuar pushim, përkthyesi do të dalë nga lak.
  • Kështu që ekrani do të tregojë: 0 1 2 3 5 6 7 8 - secila shifër në një rresht të ri.

Detyra Js 3_10. Dalja e shumës së të gjithë numrave të plotë nga 1 para 15 , duke përjashtuar nga numri i përgjithshëm 5 dhe 7 .

Deklarata e daljes

Gjuha javasctipt siguron një operator dalës nga kodi i programit - operatori dalës.
Më shpesh, operatori përdoret për të eleminuar gabimin e futjes së përdoruesit.


Le të shqyrtojmë një shembull:

Shembulli 6: Nxitni përdoruesin të futë një numër. Nëse nuk futet një numër, atëherë shfaqni mesazhin "Të duhet një numër!" dhe ndaloni programin.


✍ Zgjidhja:
  • Inicimi i një ndryshoreje numri vlera e futur nga përdoruesi në modal:
  • var var \u003d prompt ("Vendos një numër");

  • Duke përdorur funksionin parseInt për të kthyer një varg në një numër të plotë, kontrolloni nëse vlera e futur është një numër:
  • numri \u003d analizimiInt (numri); // do të kthejë NaN - jo një numër

    Nëse nuk futet një numër, funksioni do të kthejë vlerën NaN (nga anglishtja). jo një numër - jo një numër).

  • Kontrolloni vlerën e ndryshores numri duke përdorur funksionin isNaN:
  • x \u003d ështëNaN (numri); // do të kthehet e vërtetë nëse vlera nuk është numerike

    Funksioni IsNaN kthen vlerën e vërtetë në rast se ndryshorja nuk është numër

  • Nga rregulli i "genjeshtrave" aranzhoni për të kontrolluar vlerën e ndryshores x... Nëse vlera nuk është numerike, shtypni një shënim përkatës dhe dilni nga programi:
  • nëse (x) (alarm ("Ju duhet një numër!"); dilni; // dilni nga programi)

  • Për të vazhduar programin (nëse vlera e futur ishte një numër), shfaqni dritaren vijuese me një kërkesë të hyrjes:
  • alarm ("Vendos numrin e dytë"); // nëse vendos një jo-numër, deklarata nuk do të ekzekutohet

  • Testoni skenarin në një shfletues.

Pyetjet për vetëkontroll:

  1. Renditni tre parametra të lakut për dhe të shpjegojë qëllimin e tyre.
  2. Cilët operatorë kanë për qëllim të dalin nga cikli dhe ta ndërpresin atë? Jepni shembuj të përdorimit të tyre.
  3. Për çfarë shërben operatori dalje?

A është e mundur që të ketë numërues të shumtë në një P oneR?

Një punë interesante me lak for është e mundur duke përdorur njëkohësisht dy sportele në një cikël.
Le të shqyrtojmë një shembull:

Shembulli 7: Duke përdorur skriptin, shtypni çiftet vijuese me vlerë të ndryshueshme në tre rreshta: i \u003d 0 j \u003d 2 i \u003d 1 j \u003d 3 i \u003d 2 j \u003d 4


✍ Zgjidhja:
  • Në lak for, organizoni dy sportele: numëruesi i për të nxjerrë sekuencën 0 1 2 , counter j për nxjerrjen e sekuencës 2 3 4 :
  • 1 2 3 për (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { }

    për (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { }

    Secili prej tre parametrave të lakut for tani ka dy vlera, të cilat renditen presje të ndara (për shembull, parametri i parë me dy vlera: i \u003d 0, j \u003d 2). Vetë parametrat renditen pikëpresje e ndarë(;).

  • Për dalje në secilën linjë përdorni etiketën
    :
  • 1 2 3 4 për (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i \u003d ", i," j \u003d ", j);)

    për (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { document.write("
    i \u003d ", i," j \u003d ", j);)

Brezi gjatë fluturimit: si është?

Para se të bëni detyrën tjetër, merrni parasysh një shembull duke ndërtuar në mënyrë dinamike faqen HTML duke përdorur javascript.

Shembulli 8:

  • Necessaryshtë e domosdoshme të gjeneroni në mënyrë dinamike listat me gunga dhe të numëruara në faqen në internet në varësi të të dhënave të futura nga përdoruesi: nxisni përdoruesin të hyjë pamja e listës (i numëruar (numri 1) ose i etiketuar (numri 2)) dhe më pas numri i artikujve të listës.
  • Në varësi të përgjigjes, shfaqni etiketat ose të një liste me pika ose me numër me numrin e kërkuar të artikujve.
  • Nëse futet një lloj liste inekzistente, atëherë shfaqni mesazhin "Ju lutemi shkruani llojin e saktë!" dhe dilni nga programi ().

Le të kujtojmë etiketat:
etiketat e listave të numëruara:

<ol\u003e <li\u003e\u003e <li\u003e\u003e <li\u003e\u003e </ ol\u003e

etiketat e listave me plumb:

var listType \u003d prompt ("Fut" 1 "për një listë me pika," 2 "për një listë të numëruar");

  • Kontrolloni vlerën e futur: për një listë të numëruar (numri 1) nxirrni etiketën
      , për etiketën e shënuar (numri 2) -
        ... Nëse keni futur një vlerë tjetër, shtypni një shënim dhe përfundoni programin:

            ") tjetër (alarm (" Vendos llojin e duhur "); dil;)

          • Inicimi i një ndryshoreje kolvo vlera e futur nga përdoruesi në modal:
          • var kolvo \u003d prompt ("Vendos numrin e artikujve");

          • Për të kthyer një vlerë të vargut në një vlerë numerike, përdorni funksionin parseInt:
          • për (var i \u003d 1; i<=kolvo; i++) document.write("");

          • Meqenëse listat janë të mbyllura me etiketat përkatëse, varësisht nga lloji i listës, shtypni etiketat mbyllëse:
          • if (listType \u003d\u003d "1") document.write ("") tjetër nëse (listType \u003d\u003d" 2 ") dokument.write (shkruaj)" ) ;

            if (listType \u003d\u003d "1") document.write ("

        ") tjetër nëse (listType \u003d\u003d" 2 ") dokument.write (shkruaj)
      ");

    1. Testoni skenarin në një shfletues.
    2. Detyra Js 3_11.
      Shkruaj një skenar që tregon etiketat të dhëna(kontrollet) e llojeve të ndryshme, në varësi të shifrës së futur:

      1 - fusha e tekstit,
      2 - butoni,
      3 - radio(kaloni).

      Duhet të kërkohet edhe numri i etiketave të shfaqura.

      Le të kujtojmë etiketat:

      Për 1 - fushë teksti: Për butonin 2 -: Për 3 - radio:

      Shembulli i daljes:

      Detyra Js 3_12. Vizatoni një tabelë 9x9 duke përdorur javascript për sythe. "Vizato" bordi duhet të jetë etiketa html për tabelën:

      Le të kujtojmë etiketat:

      <kufiri i tabelës \u003d "1" gjerësia \u003d "30%"\u003e <tr\u003e\u003e <td\u003e-</ td\u003e -</ td\u003e </ tr\u003e </ tabela\u003e

      --

      • Për të vizatuar 9 rreshta, duhet të organizoni një lak të jashtëm me një numërues i.
      • Për të vizatuar 9 qeliza në secilën linjë, duhet të organizoni një lak të brendshëm (të mbivendosur) me një numërues j.
      • Përdorni metodën document.write për të dhënë etiketat e qelizave dhe linjave.

      Rezultati:

      Për më tepër:

      1. Shtypni tabelën e shumëzimit në qelizat e tabelës duke përdorur numëruesit e lakut (i dhe j).
      2. Shfaqni rreshtin e parë dhe kolonën e parë me një sfond të kuq (atributi i qelizës së tabelës bgcolor):
        <td bgcolor \u003d "e kuqe"\u003e-</ td\u003e

        -

      Rezultati:


      Pyetjet për vetëkontroll:

      1. Shpjegoni çfarë do të thotë ndërtim dinamik i faqes?
      2. Cila është konstrukti gjuhësor më i përdorur për ndërtimin dinamik të faqeve?

      Deklaratat ciklike të gjuhës javaScript - Ndërsa

      Sintaksa për deklaratën while është:

      ndërsa (kushti) (//..bllokimi i deklaratave ..);

      Shembull: Shfaq fuqitë e dy deri në 1000 (2, 4, 8 ... 512). Përdorni metodën e alarmit ()


      ✍ Zgjidhja:
      • Listimi i skenarit:
      • 1 2 3 4 5 var a \u003d 1; ndërsa (a< 1000 ) { a*= 2 ; alert(a) ; }

        var a \u003d 1; ndërsa (a< 1000){ a*=2; alert(a); }

        a * \u003d 2 used përdoret operacioni i caktimit të përbërjes: produkti i kombinuar me caktimin, d.m.th. njësoj si a \u003d a * 2

      • Testoni rezultatin në një shfletues.

      Si funksionojnë thëniet pushim dhe vazhdim në një lak kohor?

      Shembull:

      var a \u003d 1; ndërsa (a< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a \u003d 1; ndërsa (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Fuqitë e dy do të prodhohen në 128 përfshirëse, dhe vlera 64 do të anashkalohet. Ata. në kutitë e dialogut do të shohim: 2 4 8 16 32 128

      Detyra Js 3_13. Cilat vlera do të shfaqin copa e kodit vijues?

      numërues var \u003d 5; ndërsa (banak< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Detyra Js 3_14. Shkruaj kodin e ereksionit x në masën e yduke përdorur një lak while. Pyetni vlerat e ndryshueshme dhe nxirrni rezultatin duke përdorur alarmin ().

      Plotësoni kodin:

      1 2 3 4 5 6 7 8 9 var x \u003d ...; var y \u003d ...; counter \u003d 1; chislo \u003d x; ndërsa (...) (chislo \u003d x * ...; counter \u003d ...;) alarm (chislo);

      var x \u003d ...; var y \u003d ...; counter \u003d 1; chislo \u003d x; ndërsa (...) (chislo \u003d x * ...; counter \u003d ...;) alarm (chislo);

      A Korrigjo gabimin në programin e krijuar për të gjetur faktorialin e një numri:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter \u003d prompt ("Vendos një numër"); faktori var \u003d 1; dokument.shkruaj ( "Faktoriali i numrit:" + counter + "! \u003d"); bëj (nëse (numëruesi \u003d\u003d 0) (faktorial \u003d 1; pushim;) faktorial \u003d faktorial / kundër; counter \u003d kundër + 1;) ndërsa (kundër\u003e 0); dokument.shkruaj (faktorial);

      var counter \u003d prompt ("Vendos një numër"); faktori var \u003d 1; dokument.write ("Faktoriali i numrit:" + kundër + +!! \u003d "); bëj (nëse (numëruesi \u003d\u003d 0) (faktorial \u003d 1; pushim;) faktorial \u003d faktorial / kundër; counter \u003d kundër + 1;) ndërsa (kundër\u003e 0); dokument.shkruaj (faktorial);


      Detyra Js 3_16. Modifikoni programin për futjen e përdoruesit:

      Kërkoni një emër përdoruesi derisa përdoruesi të vendosë një emër në të vërtetë (d.m.th. fusha është plotësuar në të vërtetë dhe çelësi i anulimit nuk shtypet). Kur futet emri, atëherë nxirreni "Përshëndetje emër!"... dokument

      Si të gjeni gabime në javascript?

      Në disa raste, kodi në faqe nuk funksionon për ndonjë arsye. Ku ta gjeni gabimin? Në raste të tilla, mund të përdorni deklaratën try..catch.

      Deklarata try..catch përpiqet të ekzekutojë një pjesë të kodit, dhe nëse ka një gabim në kod, është e mundur të shfaqet një gabim në ekran.
      Gabimi ruhet në objektin e.message.

      Le të shqyrtojmë punën e operatorit duke përdorur një shembull:

      Shembull: shkruaj një deklaratë me një gabim në program. Kontrolloni për një gabim në kodin e dyshuar të gabuar: nëse ka një gabim në kod, shfaqni një mesazh "trajtimi i gabimit: emri i gabimit"... Pasi të keni kontrolluar operatorin e gabuar, pavarësisht nëse ka ndonjë gabim në kod, lëshoni mesazhin "veprimet e mbarimit"


      ✍ Zgjidhja:
      • Si një mesazh me një gabim, ne do të përdorim metodën prompt (), shkruar me një gabim - nxit ()... Mbyllni mesazhin e gabimit në një bllok provë:
      • alarm ("para"); provoni (promt ("shkruani një numër"); // operator me një gabim)

        Provo nga anglishtja. - "provo", kështu, ne vendosim deklaratën try përpara një fragment kodi që mund të përmbajë një gabim (në rastin tonë, ekziston vërtet një gabim).

      • Mesazhi i gabimit duhet të vendoset në një bllok kapës:
      • 6 7 8 9 kap (e) (vigjilent ( "trajtimi i gabimit:"+ e. mesazh); )

        kap (e) (alarm ("trajtimi i gabimit:" + e. mesazhi);)

        Nëse vërtet ekziston një gabim, atëherë deklarata e kap këtë gabim në objektin e. Më vonë mund të shfaqet në kutinë e dialogut e.message.

      • Vendosni mesazhin përfundimtar, i cili duhet të shfaqet pavarësisht nëse ka ndonjë gabim në kod, në një bllok përfundimisht:
      • më në fund (alarm ("veprimet e mbarimit");) alarm ("pas");

        Nëse ekziston një gabim, atëherë interpretuesi pasi ta shfaqë atë në shembullin tonë do të vazhdojë të ekzekutojë bllokun e kapjes, dhe pastaj më në fund (nga "plotësimi" anglisht, "më në fund"), i cili do të ekzekutohet gjithmonë, pavarësisht nëse ka pasur një gabim apo jo. Edhe nëse ka pasur një gabim në bllokun e kapjes.

      E rëndësishme: Blloku i fundit është opsional në ndërtim.


      Detyra Js 3_17. Ndiqni shembullin e mësipërm me modifikimet e mëposhtme:

    3. Hiqni bllokun e fundit dhe shikoni drejtimin e kodit.
    4. Zëvendësoni operatorin e gabuar me një pa gabime dhe shikoni se cili do të jetë rezultati.
    5. Përmbledhje:

      Mësimi përfshiu operatorët dhe ndërtimet e mëposhtme javascript:

      Deklarata me kusht Javascript:

    6. Nëse deklarata
    7. Caktimi i kushtëzuar (operatori i tretë)
    8. Deklarata e ndërrimit
    9. Operatorët loop:

    10. Për lak
    11. Ndërsa lak
    12. Cikli do ... while
    13. Për ... në lak
    14. Detyra përfundimtare Js 3_18.
      Krijoni një lojë për dy:

      1. Programi kërkon që lojtari i parë të fusë një numër nga 1 para 100 (lojtari i dytë nuk e sheh numrin e futur). Pastaj lojtarit të dytë i kërkohet të gjejë numrin e futur. Mesazhi shfaqet si përgjigje "pak" ose "shumë" në varësi të përgjigjes së futur. Nëse lojtari mendon saktë, urimet shfaqen. Nëse ai mendon gabim, loja vazhdon (derisa numri të mendohet në të vërtetë).
      2. Llogaritni numrin e përpjekjeve dhe ktheni rezultatin kur numri është supozuar.


      Pyetjet për vetëkontroll:

      1. Kur këshillohet të përdorni një lak For In? Cili është një shembull i përdorimit të tij.
      2. Cili është qëllimi i deklaratës try..catch?
      3. Shpjegoni qëllimin e secilës provë..bllokoni deklaratën e kapjes.

      Burimi për këtë shembull ndërveprues është ruajtur në një depo GitHub. Nëse dëshironi të kontribuoni në projektin e shembujve interaktivë, ju lutemi klononi https://github.com/mdn/interactive-examples dhe na dërgoni një kërkesë tërheqëse.

      Sintaksë

      if (kushti) statement1 condition Një shprehje që konsiderohet të jetë truthy ose fals. statement1 Deklarata që ekzekutohet nëse kushti është i mirëfilltë. Mund të jetë çdo deklaratë, përfshirë edhe folezuar nëse deklarata. Për të ekzekutuar deklarata të shumëfishta, përdorni një deklaratë bllok (...) për të grupuar ato deklarata. Për të ekzekutuar asnjë deklaratë, përdorni një deklaratë të zbrazët. statement2 Deklarata që ekzekutohet nëse kushti është i rremë dhe klauzola tjetër ekziston. Mund të jetë çdo deklaratë, duke përfshirë deklaratat e bllokut dhe të vendosura më tej nëse deklaratat.

      Përshkrim

      Deklaratat e shumëfishta nëse ... tjetër mund të vendosen për të krijuar një klauzolë tjetër. Vini re se nuk ka fjalë kyçe tjetër (me një fjalë) në JavaScript.

      Nëse (kushti1) pohimi1 tjetër nëse (kushti2) pohimi2 tjetër nëse (kushti3) pohimi3 ... tjetër deklarataN

      Për të parë se si funksionon kjo, kështu do të dukej sikur folezimi të ishte i prerë siç duhet:

      Nëse (kushti 1) pohimi 1 tjetër nëse (kushti 2) pohimi2 tjetër nëse (kushti 3) ...

      Për të ekzekutuar deklarata të shumta brenda një klauzole, përdorni një deklaratë bllok ((...)) për të grupuar ato deklarata. Në përgjithësi, është një praktikë e mirë që gjithmonë të përdoren deklaratat e bllokut, veçanërisht në kodin që përfshin deklaratat e ngulitura:

      Nëse (kushti) (deklaratat 1) tjetër (deklaratat2)

      Mos ngatërroni vlerat primitive Boolean të vërteta dhe të rreme me vërtetësinë ose falsitetin e objektit Boolean. Çdo vlerë që nuk është false, e papërcaktuar, , 0, -0, NaN, ose vargu bosh (""), dhe çdo objekt, duke përfshirë një objekt Boolean vlera e të cilit është false, konsiderohet i mirë kur përdoret si kusht. Për shembull:

      Var b \u003d Boolean i ri (false); nëse (b) // kjo gjendje është e besueshme

      Shembuj

      Duke përdorur nëse ... tjetër

      nëse (cipher_char \u003d\u003d\u003d from_char) (rezultat \u003d rezultat + në_kar; x ++;) tjetër (rezultat \u003d rezultat + kartë e qartë;)

      Përdorimi tjetër nëse

      Vini re se nuk ka asnjë sintaksë tjetër në JavaScript. Sidoqoftë, mund ta shkruani me një hapësirë \u200b\u200bndërmjet tjetrit dhe nëse:

      Nëse (x\u003e 50) (/ * bëni gjënë e duhur * /) tjetër nëse (x\u003e 5) (/ * bëni gjënë e duhur * /) tjetër (/ * bëni gjënë e duhur * /)

      Caktimi brenda shprehjes së kushtëzuar

      Këshillohet të mos përdorni detyra të thjeshta në një shprehje të kushtëzuar, sepse caktimi mund të ngatërrohet me barazinë kur hidhni një sy kodit. Për shembull, mos përdorni kodin e mëposhtëm:

      Nëse (x \u003d y) (/ * bëni gjënë e duhur * /)

      Nëse keni nevojë të përdorni një detyrë në një shprehje të kushtëzuar, një praktikë e zakonshme është të vendosni kllapa shtesë rreth detyrës. Për shembull:

      Nëse ((x \u003d y)) (/ * bëj gjënë e duhur * /)

      Specifikimet

      Specifikim Statusi Komento
      Drafti i fundit ECMAScript (ECMA-262)
      Drafti
      ECMAScript 2015 (Edicioni i 6-të, ECMA-262)
      Përkufizimi i "nëse deklarata" në atë specifikim.
      Standarde
      ECMAScript 5.1 (ECMA-262)
      Përkufizimi i "nëse deklarata" në atë specifikim.
      Standarde
      Botimi i tretë ECMAScript (ECMA-262)
      Përkufizimi i "nëse deklarata" në atë specifikim.
      Standarde
      Botimi i parë ECMAScript (ECMA-262)
      Përkufizimi i "nëse deklarata" në atë specifikim.
      Standarde Përkufizimi fillestar

      Përputhshmëria e shfletuesit

      Tabela e pajtueshmërisë në këtë faqe gjenerohet nga të dhëna të strukturuara. Nëse dëshironi të kontribuoni në të dhëna, shikoni https://github.com/mdn/browser-compat-data dhe na dërgoni një kërkesë tërheqjeje.

      Përditësoni të dhënat e pajtueshmërisë në GitHub

      DesktopMobileServeri
      KromEdgeFirefoxInternet ExplorerOperaSafariShikim në internet i AndroidChrome për AndroidFirefox për AndroidOpera për AndroidSafari në iOSInternet SamsungNyja.js
      nese TjeterChrome mbështetje e plotë 1Edge Mbështetje e plotë 12Firefox Mbështetje e plotë 1IE mbështetje e plotë 3Opera Mbështetje e plotë PoSafari Mbështetje e plotë PoWebView Android Mbështetje e plotë 1Chrome Android Mbështetje e plotë 18Firefox Android Mbështetje e plotë 4Opera Android Mbështetje e plotë PoSafari iOS Mbështetje e plotë PoSamsung Internet Android Mbështetje e plotë 1.0nodejs Mbështetje e plotë Po

      Në këtë shembull, ne së pari deklarojmë katër variabla duke përdorur fjalën kyçe var, dhe menjëherë u caktojmë atyre vlera numerike. Pastaj, duke përdorur operatorët e rritjes dhe zbritjes, ne ndryshojmë vlerat e numrave. Informacioni shfaqet duke përdorur funksionin Jehona (shih artikullin ""). Për të mos shkruar edhe një herë emrin e objektit, unë përdora konstruksionin me ().

      Operatorët logjikë

      Operatorët logjikë përdoren gjatë kontrollit të gjendjes, në mënyrë që të mos përsëris, unë do të bëj një shkurtim: operandi i majtë është L.O., dhe operandi i djathtë është P.O.

      • && - Logjike "DHE"
      • || - "OSE"
      • ! - "JO"
      • \u003e - L.O. më shumë P.O.
      • \u003e \u003d - L.O. është më e madhe ose e barabartë me P.O.
      • < - Л.О. меньше П.О.
      • <= - Л.О. меньше или равен П.О.
      • \u003d\u003d - L.O. e barabartë me P.O.
      • ! \u003d - L.O. jo e barabartë me P.O.
      • | \u003d - L.O. e barabartë me veten OSE P.O.
      • & \u003d - L.O. e barabartë me veten time dhe P.O.
      • ^ \u003d - EKSKLUZIVE OSE

      Tani merrni parasysh shkrimin e mëposhtëm:

      //***************************************** // operacionet logjike // logik_if_else.js //***************************************** var a \u003d 10, b \u003d 100, WshShell, titulli, msg1, msg2, msg3, msg4, vbInformation \u003d 64; // Krijoni një shembull të klasës WScript.Shell WshShell \u003d WScript.CreateObject ("WScript.Shell"); titulli \u003d "Puna me Deklaratën e Kushtëzuar të IF ELSE JS"; me (WshShell) (nëse (a\u003e \u003d 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>\u003d 5 || b \u003d\u003d 100) // e vërtetë msg2 \u003d "E VRTET"; else msg2 \u003d "E GABUAR"; Dritare (msg2, 5, titulli, informacioni vb); // pohim i kushtëzuar js nëse tjetër if (! a) // false msg3 \u003d "E VRTET"; else msg3 \u003d "E GABUAR"; Dritare (msg3, 5, titulli, informacioni vb); nëse (a & \u003d 100) // false msg4 \u003d "E VRTET"; else msg4 \u003d "E GABUAR"; Dritare (msg4, 5, titulli, informacioni vb); )

      Ashtu si në skenarin e mëparshëm, këtu kam përdorur konstruksionin me për të shkurtuar kodin e programit. Sidoqoftë, për të shfaqur informacione, ne përdorëm funksionin Shfaqem (shih artikullin ""). Si rezultat, kutitë e dialogut do të mbyllen automatikisht pas disa sekondash. Ju lutemi vini re se në këtë shembull ne nuk kemi përdorur mbajtësa kaçurrelë. në deklaratën e kushtëzuar js, ato janë të rëndësishme vetëm kur duhet të ekzekutoni më shumë se një rresht të kodit, por disa.

      Së fundmi, le të shohim një shembull praktik si zgjidhja e një ekuacioni kuadratik:

      // Zgjidhja e një ekuacioni kuadratik // uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; // Deklaroni ndryshoret a \u003d - 2; b \u003d 6; c \u003d 20; // Kërkimi i diskriminuesit d \u003d Matematikë .pushë (b, 2) - 4 * a * c; nëse (d \u003d\u003d 0) (x \u003d b / (2 * a); msg \u003d "Ekuacioni ka një zgjidhje, x është saktësisht" + x) tjetër (nëse (d\u003e 0) (x1 \u003d (- b + Matematikë .sqrt (d)) / (2 * a); x2 \u003d (- b - Matematikë .sqrt (d)) / (2 * a) ; msg \u003d "Ekuacioni ka dy zgjidhje \\ n x1 saktësisht" + x1 + " \\ n x2 saktësisht " + x2; // pohim i kushtëzuar nëse tjetër js ) else msg \u003d "Pa zgjidhje"; ) WScript.Echo (msg);

      Në jetën e përditshme, shpesh është e nevojshme të merret një lloj vendimi, në varësi të një gjendjeje. Për shembull, nëse koha është e ngrohtë gjatë fundjavës, atëherë do të shkojmë në det, përndryshe, nëse është me re, do të ulemi në shtëpi.

      Në programim, kjo është gjithashtu shumë e zakonshme. Për këtë ka dy pohime të kushtëzuara, këto janë nëse-tjetër dhe rast-ndërprerës... Në këtë artikull do t'ju tregoj për operatorin if-else, dhe në artikullin vijues për rastin-ndërprerës.

      Sintaksa e pohimit të kushtëzuar nëse-tjetër në vijim:


      Nëse kushti është i vërtetë, atëherë ekzekutohet kodi nga blloku if, përndryshe, nëse kushti është i gabuar, atëherë ekzekutohet kodi nga blloku tjetër.

      Për një kuptim më të mirë, le të marrim një shembull kaq të thjeshtë, ne kemi një shumë të caktuar parash dhe duam të blejmë një makinë, dhe këtu menjëherë lind një gjendje e tillë, nëse kemi para të mjaftueshme, atëherë mund ta blejmë këtë makinë, përndryshe nuk mundemi.

      Para para \u003d 35000; // Le të themi se kemi 35,000 euro // Makina që duam të blejmë kushton 50,000 euro. Dhe një gjendje e tillë ndodh nëse (para\u003e 50000) (document.write ("Ne mund të blejmë një makinë");) tjetër (document.write ("Nuk ka para të mjaftueshme për të blerë një makinë");)

      Ne e ruajmë dokumentin, e hapim në një shfletues dhe shohim se mesazhi i mëposhtëm shfaqet në faqen "Nuk ka para të mjaftueshme për të blerë një makinë". Nëse do të kishim më shumë se 50,000 euro, atëherë kodi nga blloku if do të ekzekutohej. Nëse do të kishim saktësisht 50,000 euro, atëherë nuk do të ishim në gjendje të blinim një makinë, sepse 50,000 nuk është më shumë se 50,000. Në mënyrë që gjendja në këtë rast të jetë e vërtetë, duhet të shkruani një shenjë më të madhe ose të barabartë (\u003e \u003d) ...

      Komento! Operacioni logjik i barabartë shkruhet me dy shenja të barabarta (\u003d\u003d)... Ekziston edhe një veprim logjik më i vogël ose i barabartë me (

      duke përdorur shiritat kaçurrelë

      Nëse ka vetëm një operator, atëherë mbajtësit e kaçurrelave janë opsionale, nëse ka më shumë se një operator në bllok, atëherë kërkohen mbajtëse kaçurrelash.

      Shembulli i mësipërm do të funksionojë mirë pa mbajtëse kaçurrelash, pasi që të dy blloqet përmbajnë vetëm një pohim.

      Çdo operacion logjik mund të shkruhet brenda ifqofshin ato të thjeshta apo komplekse. Mund të përdorni gjithashtu operatorët AND (&&) dhe OR (||).

      Komento! Blloku tjetër është opsional.

      Për shembull, nëse a është e barabartë me b dhe c është e barabartë me d, atëherë ne shfaqim mesazhin përkatës, përndryshe nëse nuk ka bllok tjetër, atëherë thjesht shkojmë më tej, në rreshtin tjetër.

      Var a \u003d 4, b \u003d 4, c \u003d 8, d \u003d 8; nëse ((a \u003d\u003d b) && (c \u003d\u003d d)) dokument.shkruaj ("a është e barabartë me b DHE e barabartë me d"); document.write ("Rreshti tjetër i kodit");

      Deklarata nëse - tjetër nëse - tjetër

      Pas bllokut if, një ose më shumë tjetër nëse blloqet mund të ndjekin, dhe në fund ka një bllok tjetër. Kjo është e dobishme kur duhet të përdorni më shumë se një kusht.


      Për një kuptim më të mirë, le të marrim një shembull nga jeta e përditshme. Për shembull, ne kemi një numër të caktuar të pikave të shitjes. Nëse kemi vetëm një dalje në dhomë, atëherë mund të lidhim vetëm një pajisje, nëse ka dy fole, atëherë mund të lidhim dy pajisje, dhe nëse ka më shumë, atëherë mund t’i lidhim të gjitha pajisjet nga shtëpia në rrjetin elektrik.

      Tani le të kalojmë te programimi.

      Fole Var \u003d 2; // Numri i bazave në shtëpi nëse (priza \u003d\u003d 1) dokument.write (shkruaj)

      Mund të lidhim vetëm një pajisje

      "); përndryshe nëse (fole \u003d\u003d 2) (document.write ("

      Mund të lidhim vetëm dy pajisje

      "); document.write ("

      Për shembull TV dhe laptop

      ");) tjetër (dokument.write ("

      Ne mund të lidhim të gjitha pajisjet nga shtëpia në rrjetin elektrik

      "); }

      Në varësi të vlerës së ndryshores së prizës, ky ose ai bllok kodi do të ndizet. Siç e keni kuptuar tashmë, nëse foleja është e barabartë me 1, atëherë blloku i parë i kodit do të funksionojë. Nëse foleja është 2, atëherë blloku i dytë i kodit do të ndizet dhe nëse foleja ka ndonjë vlerë tjetër (qoftë edhe një numër negativ) atëherë blloku i tretë i kodit do të ndizet.

      Stenografi nëse tjetër

      Një shënim i shkurtuar mund të përdoret në rastin kur, varësisht nga një kusht i caktuar, një ndryshore mund të marrë një vlerë të veçantë.


      Për shembull, nëse vlera e ndryshores a është më e madhe se vlera e ndryshores b, atëherë në ndryshoren x shkruajmë mesazhin vijues, “Ndryshorja a është më e madhe se ndryshorja b”, përndryshe shkruajmë se “Ndryshorja a është më e vogël se ndryshorja b”.

      Var a \u003d 50, b \u003d 100, x; x \u003d (a\u003e b)? "

      Ndryshueshme a më shumë ndryshore b

      " : "

      Ndryshueshme a me pak ndryshore b

      "; // Printo dokumentin që rezulton si rezultat. Shkruaj (x);

      Kjo është gjithçka për të cilën doja t'ju tregoja në këtë artikull. Operatori i kushtëzuar nëse-tjetër përdoret më shumë se në çdo skript, kështu që është shumë e rëndësishme ta njohim dhe ta kuptojmë atë. Në artikullin vijues do t'ju tregoj për një deklaratë më të kushtëzuar të rastit të ndërprerësit.