Sintaksa funkcije If u javascriptu. Uvjetne izjave. Funkcije u JavaScriptu

💖 Sviđa li vam se? Podijelite vezu sa svojim prijateljima

Izvor za ovaj interaktivni primjer pohranjen je u GitHub repozitorij. Ako želite doprinijeti projektu interaktivnih primjera, klonirajte https://github.com/mdn/interactive-examples i pošaljite nam zahtjev za povlačenje.

Sintaksa

if (uvjet) iskaz1 uvjet Izraz za koji se smatra da je istinit ili lažan. izjava1 Naredba koja se izvršava ako je uvjet istinit. Može biti bilo koja naredba, uključujući dalje ugniježđene naredbe if. Da biste izvršili više naredbi, koristite blok naredbe (( ... )) za grupiranje tih naredbi. Da ne izvršite naredbe, upotrijebite praznu naredbu. statement2 Naredba koja se izvršava ako je uvjet lažan i postoji klauzula else. Može biti bilo koja naredba, uključujući blok naredbe i dalje ugniježđene naredbe if.

Opis

Više naredbi if...else može se ugniježditi kako bi se stvorila klauzula else if. Imajte na umu da u JavaScriptu ne postoji ključna riječ elseif (jednom riječju).

If (uvjet1) izjava1 else if (uvjet2) izjava2 else if (uvjet3) izjava3 ... else izjavaN

Da vidite kako ovo funkcionira, ovako bi izgledalo da je ugniježđenje pravilno uvučeno:

If (uvjet1) iskaz1 else if (uvjet2) iskaz2 else if (uvjet3) ...

Da biste izvršili više naredbi unutar klauzule, koristite blok naredbe (( ... )) za grupiranje tih naredbi. Općenito, dobra je praksa uvijek koristiti blok naredbe, posebno u kodu koji uključuje ugniježđene if naredbe:

If (uvjet) ( izjave1 ) else ( izjave2 )

Ne brkajte primitivne Booleove vrijednosti true i false s istinitošću ili lažnošću Booleovog objekta. Svaka vrijednost koja nije false, undefined, null, 0, -0, NaN ili prazan niz (""), i bilo koji objekt, uključujući Boolean objekt čija je vrijednost false, smatra se istinitom kada se koristi kao uvjet. Na primjer:

Var b = new Boolean(false); ako (b) // ovaj uvjet je istinit

Primjeri

Korištenje if...else

if (cipher_char === from_char) (rezultat = rezultat + to_char; x++; ) else (rezultat = rezultat + clear_char;)

Korištenje else if

Imajte na umu da u JavaScriptu ne postoji elseif sintaksa. Međutim, možete ga napisati s razmakom između else i if:

If (x > 50) ( /* učini pravu stvar */ ) else if (x > 5) ( /* učini pravu stvar */ ) else ( /* učini pravu stvar */ )

Dodjela unutar uvjetnog izraza

Preporučljivo je ne koristiti jednostavne dodjele u uvjetnom izrazu, jer se dodjela može zamijeniti s jednakošću kada letimično prelazite preko koda. Na primjer, nemojte koristiti sljedeći kôd:

Ako (x = y) ( /* učini pravu stvar */ )

Ako trebate upotrijebiti dodjelu u uvjetnom izrazu, uobičajena je praksa staviti dodatne zagrade oko dodjele. Na primjer:

If ((x = y)) ( /* učini pravu stvar */ )

Tehnički podaci

Specifikacija Status Komentar
ECMAScript najnoviji nacrt (ECMA-262)
Nacrt
ECMAScript 2015 (6. izdanje, ECMA-262)
Definicija "if izjave" u toj specifikaciji.
Standard
ECMAScript 5.1 (ECMA-262)
Definicija "if izjave" u toj specifikaciji.
Standard
ECMAScript 3. izdanje (ECMA-262)
Definicija "if izjave" u toj specifikaciji.
Standard
ECMAScript 1. izdanje (ECMA-262)
Definicija "if izjave" u toj specifikaciji.
Standard Početna definicija

Kompatibilnost preglednika

Tablica kompatibilnosti na ovoj stranici generirana je iz strukturiranih podataka. Ako želite doprinijeti podacima, pogledajte https://github.com/mdn/browser-compat-data i pošaljite nam zahtjev za povlačenje.

Ažurirajte podatke o kompatibilnosti na GitHubu

Radna površinaMobilniposlužitelj
KromRubFirefoxInternet ExplorerOperaSafariAndroid web-prikazChrome za AndroidFirefox za AndroidOpera za AndroidSafari na iOS-uSamsung InternetNode.js
ako...drugoPuna podrška za Chrome 1Edge Potpuna podrška 12Firefox Puna podrška 1IE puna podrška 3Opera Potpuna podrška DaSafari Potpuna podrška DaWebView Android Puna podrška 1Chrome Android Puna podrška 18Firefox Android Puna podrška 4Opera Android Puna podrška DaSafari iOS Puna podrška DaSamsung Internet Android Puna podrška 1.0nodejs Puna podrška Da

Uvjetne izjave

Uvjetne naredbe omogućuju vam da preskočite ili izvršite druge naredbe ovisno o vrijednosti određenog izraza. Ove izjave su točke odluke u programu i ponekad se također pozivaju operateri poslovnica.

Ako zamislite da je program cesta, a JavaScript interpreter putnik koji hoda duž nje, tada se uvjetni iskazi mogu smatrati raskrižjima gdje se programski kod grana u dvije ili više cesta, a na takvim raskrižjima tumač mora odabrati koji put kojim treba ići sljedeći.

naredba if/else

Naredba if osnovna je kontrolna naredba koja JavaScript interpreteru omogućuje donošenje odluka ili točnije izvršavanje naredbi na temelju uvjeta. Iskaz if ima dva oblika. Prvi:

if (izraz) izjava

U ovom obliku, izraz se prvo procjenjuje. Ako je dobiveni rezultat istinit, tada se naredba izvršava. Ako izraz vrati false, naredba se ne izvršava. Na primjer:

If (username == null) // Ako je varijabla korisničkog imena null ili nedefinirana username = "Alex"; // definirati

Imajte na umu da su zagrade oko uvjetnog izraza obavezni dio sintakse naredbe if.

Drugi oblik naredbe if uvodi klauzulu else koja se izvršava kada se izraz ocijeni kao netočan. Njegova sintaksa je:

if (izraz) iskaz1 else iskaz2

Ovaj obrazac izvršava naredbu1 ako je vrijednost izraza istinita i naredbu2 ako je vrijednost izraza netočna. Na primjer:

If (n == 1) console.log("1 nova poruka primljena."); else console.log("Primljene " + n + " nove poruke.");

else if izjava

Naredba if/else procjenjuje vrijednost izraza i izvršava jedan ili drugi dio programskog koda, ovisno o rezultatu. Ali što ako trebate izvršiti jedan od mnogih fragmenata? Mogući način da to učinite je korištenje else if naredbe. Formalno, to nije samostalni JavaScript operator; Ovo je samo uobičajeni stil programiranja korištenja ponovljene if/else naredbe:

If (n == 1) ( // Izvrši blok 1 ) else if (n == 2) ( // Izvrši blok 2 ) else if (n == 3) ( // Izvrši blok 3 ) else ( // Ako niti jedno jedna od prethodnih else naredbi nije izvršena, izvrši blok 4)

Nema ništa posebno u ovom komadu. To je jednostavno niz if naredbi, gdje je svaka if naredba dio else klauzule prethodne naredbe.

izjava prebaciti

Iskaz if stvara grananje u toku programa, a grananje s više stanja može se implementirati pomoću nekoliko else if naredbi. Međutim, to nije uvijek najbolje rješenje, pogotovo ako sve grane ovise o vrijednosti istog izraza. U ovom slučaju, rasipno je ponovno procjenjivati ​​isti izraz u više naredbi if.

Izjava switch dizajnirana je posebno za takve situacije. Iza ključne riječi switch slijedi izraz u zagradama i blok koda u vitičastim zagradama:

prekidač (izraz) ( upute )

Međutim, puna sintaksa naredbe switch složenija je nego što je ovdje prikazano. Razna mjesta u bloku označena su ključnom riječi slučaj nakon čega slijedi izraz i znak dvotočke.

Kada se izvrši naredba switch, ona procjenjuje vrijednost izraza i zatim traži oznaku slučaja koja odgovara toj vrijednosti (podudaranje se utvrđuje korištenjem operatora identiteta ===). Ako je oznaka pronađena, blok koda se izvršava, počevši od prve izjave koja slijedi nakon oznake slučaja. Ako oznaka slučaja s odgovarajućom vrijednošću nije pronađena, izvođenje počinje s prvom naredbom koja slijedi nakon posebne oznake zadano:. Ako zadana: oznaka nedostaje, cijeli blok naredbe switch se preskače.

Rad naredbe switch teško je objasniti riječima; objašnjenje je mnogo jasnije uz primjer. Sljedeća naredba switch ekvivalentna je ponovljenim naredbama if/else prikazanim u prethodnom primjeru:

Switch(n) ( slučaj 1: // Izvršeno ako je n === 1 // Izvrši prekid bloka 1; // Zaustavi se ovdje slučaj 2: // Izvršeno ako je n === 2 // Izvrši prekid bloka 2; / / Zaustavi ovdje slučaj 3: // Izvrši ako je n === 3 // Izvrši prekid bloka 3; // Zaustavi ovdje: // Ako sve drugo ne uspije... // Izvrši prekid bloka 4; // Zaustavi ovdje )

Obratite pozornost na ključnu riječ pauza na kraju svakog bloka predmeta. Naredba break uzrokuje prijenos kontrole na kraj naredbe switch i nastavak izvođenja sljedećih naredbi. Naredbe slučaja u naredbi switch specificiraju samo početnu točku programskog koda koji se treba izvršiti, ali ne specificiraju nikakve krajnje točke.

Ako nema naredbi break, naredba switch će započeti izvršavanje bloka koda s oznakom case koja odgovara vrijednosti izraza i nastaviti s izvođenjem naredbi dok ne dođe do kraja bloka. U rijetkim slučajevima ovo je korisno za pisanje koda koji se pomiče s jedne oznake case na drugu, ali u 99% slučajeva trebali biste pažljivo završiti svaki blok case naredbom break. (Kada koristite switch unutar funkcije, možete koristiti povratnu naredbu umjesto breaka. Obje ove naredbe služe za prekid switch naredbe i sprječavaju njezin odlazak na sljedeću oznaku case.)

Ispod je praktičniji primjer upotrebe naredbe switch, ona pretvara vrijednost u niz na način koji ovisi o vrsti vrijednosti:

Funkcija convert(x) ( switch(typeof x) ( // Pretvori broj u heksadecimalni cijeli broj velikih i velikih slova "number": return x.toString(16); // Vrati citirani niz velikih i malih slova "string": return """ + x + """; // Bilo koja druga vrsta pretvara se na uobičajeni način default: return x.toString(); ) ) console.log(convert(1067)); // Rezultat "42b"

Imajte na umu da su u prethodna dva primjera nakon ključnih riječi velikih i malih slova slijedili brojevi ili literali niza. Ovo je način na koji se naredba switch najčešće koristi u praksi, ali standard ECMAScript omogućuje navođenje proizvoljnih izraza nakon slučaja.

Naredba switch prvo procjenjuje izraz nakon ključne riječi switch, a zatim case izraze redoslijedom kojim su navedeni, dok se ne pronađe odgovarajuća vrijednost. Činjenica podudaranja utvrđuje se korištenjem operatora identiteta === umjesto operatora jednakosti ==, tako da se izrazi moraju podudarati bez ikakve konverzije tipa.

Budući da se ne procjenjuju svi izrazi velikih i malih slova svaki put kada se izvrši naredba switch, trebali biste izbjegavati korištenje izraza velikih i malih slova koji imaju nuspojave kao što su pozivi funkcija i dodjele. Najsigurnije je ograničiti case izraze na konstantne izraze.

Kao što je ranije objašnjeno, ako nijedan izraz case ne odgovara naredbi switch, naredba switch počinje izvršavati naredbu s oznakom default:. Ako zadana oznaka: nedostaje, tijelo naredbe switch se u potpunosti preskače. Imajte na umu da je u prethodnim primjerima zadana oznaka: uključena na kraju tijela naredbe switch, nakon svih oznaka velikih i malih slova. Ovo je logično i uobičajeno mjesto za to, ali zapravo se može nalaziti bilo gdje unutar naredbe switch.

Uvjetni operator omogućuje preskakanje ili izvršavanje određenog bloka koda ovisno o rezultatu izračuna navedenog izraza - uvjeta. Za uvjetnu naredbu se može reći da je točka odluke u programu; ponekad se također naziva naredba grananja. Ako zamislite da je program cesta, a PHP interpreter je putnik koji hoda duž nje, tada se uvjetni iskazi mogu smatrati raskrižjima gdje se programski kod grana u dvije ili više cesta, a na takvim raskrižjima tumač mora odabrati koji put kojim treba ići sljedeći.

izjava if

Naredba if je najjednostavnija naredba grananja.

Sintaksa naredbe if je:

Naredba if prvo procjenjuje uvjetni izraz naveden u zagradama, čiji je rezultat Booleova vrijednost. Ako je dobiveni rezultat točan, tada se instrukcija izvršava. Ako izraz vrati false, tada se instrukcija ne izvršava. Izraz bilo koje složenosti može se koristiti kao uvjet.

Ako tijelo naredbe if koristi samo jednu instrukciju, onda je stavljanje u vitičaste zagrade moguće, ali nije nužno. Međutim, ako trebate izvršiti više od jedne instrukcije u tijelu if naredbe, tada se tih nekoliko instrukcija mora staviti u vitičaste zagrade. Imajte na umu da iza završne vitičaste zagrade ne smije biti točka-zarez.

Sljedeći kod demonstrira upotrebu naredbe if:

If izjave mogu biti ugniježđene unutar drugih if izjava:

Obratite pozornost na posljednji primjer: instrukcija ne mora biti točno napisana ispod naredbe if; ako instrukcija nije velika, tada se može napisati u jednom redu.

izjava if else

I tako smo naučili da vam naredba if omogućuje izvršavanje instrukcija ako je uvjet istinit. Ako je uvjet lažan, tada se ne izvodi nikakva radnja. Međutim, često je potrebno izvršiti određene instrukcije ako je određeni uvjet istinit, a druge instrukcije ako je uvjet lažan. Za takve se slučajeve koristi if else grananje. Sastoji se od if naredbe iza koje slijedi blok naredbi i else ključne riječi iza koje slijedi još jedan blok naredbi.

Sintaksa naredbe if else je:

Naredba else nije obavezna. Blok instrukcija koji se nalazi iza else izvršava se prema zadanim postavkama, tj. kada uvjetni izraz u if vrati false. Naredba else ne može se koristiti odvojeno od naredbe if. Blok else trebao bi se pojaviti samo nakon naredbe if; može se smatrati zadanom radnjom.

Malo modificirajući naš prethodni primjer, možemo vidjeti kako naredba if else funkcionira ako uvjet vraća false:

Naredba if else može biti ugniježđena. Takve ugniježđene uvjetne naredbe često se pojavljuju u praksi. If naredba je ugniježđena ako je ugniježđena unutar drugog if ili else bloka. Ako vaš kod koristi više naredbi if u nizu, else se uvijek odnosi na najbližu if:

Posljednji else se ne odnosi na if($a) jer nije u unutarnjem bloku, pa mu je najbliži if($i) . Iskaza else unutar bloka povezana je s if($b) jer mu je ovaj if najbliži.

elseif/drugače ako konstrukcija

Naredba if/else procjenjuje vrijednost uvjetnog izraza i izvršava određeni dio programskog koda. Ali što ako trebate izvršiti jedan od mnogih fragmenata? Ako trebate provjeriti nekoliko uvjeta zaredom, onda je konstrukcija elseif ili else if prikladna za to (ovo je ista konstrukcija, samo je drugačije napisana). Formalno, to nije nezavisna PHP konstrukcija - to je samo uobičajeni stil programiranja koji se sastoji od upotrebe ponovljenih if/else naredbi. Omogućuje testiranje dodatnih uvjeta dok se ne pronađe istina ili dok se ne dosegne blok else. elseif/drugače ako konstrukcija mora se pojaviti nakon naredbe if i prije naredbe else, ako postoji.

Ovdje se provjeravaju tri uvjeta i, ovisno o vrijednosti varijable $username, izvode se različite akcije.

Nema stvarno ništa posebno u ovom komadu. To je jednostavno niz if naredbi, gdje je svaka if naredba dio else klauzule prethodne if naredbe. Za one koji su se prvi put susreli s ovim oblikom notacije i ne razumiju baš kako funkcionira, prepisat ćemo isti primjer, samo u ekvivalentnom sintaktičkom obliku koji u potpunosti prikazuje ugniježđenost struktura:

var a = 10; var b = (a>1) ? 100:200; upozorenje(b);

Ako je stanje a>1 istina, onda varijabla b dodijeliti vrijednost 100 , inače dodijelite vrijednost varijabli b 200 .

Js zadatak 3_4. Dodavanje koda: 3 lokalne varijable su deklarirane pomoću ključne riječi var. Max varijabli je potrebno dodijeliti vrijednost sljedećeg ternarnog operatora: ako je a veće od b, vraćamo a, u protivnom vraćamo b.
Isječak koda:

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


Pitanja za samokontrolu:

  1. Koja je sintaksa ternarnog operatora?
  2. Koliko argumenata ima ternarni operator?

Operator prebacivanja u javascriptu - prebacivanje

Javascript switch izjava koristi se za testiranje varijable na više vrijednosti:

Sintaksa:

prekidač (varijabla ili izraz) ( case opcija1: //..blok naredbi.. break case opcija2: //..blok naredbi.. break default: //..blok naredbi.. )

Provjerava se vrijednost varijable ili izraza: u svakom slučaj provjerava se jedna od vrijednosti, ako je vrijednost prikladna, izvršava se jedan ili drugi blok operatora koji tome odgovara slučaj.

Blok koji počinje servisnom riječi default može se izostaviti. Blok naredbe će se izvršiti ako niti jedna od navedenih vrijednosti nije prisutna u cijelosti slučaj ne odgovara.

Važno: Naredba break je potrebna nakon svake razmatrane vrijednosti varijable (nakon svake slučaj); ako ga ne koristite, ispisat će se sve izjave u nastavku

Usporedite s operaterom AKO:

var a = 2; switch(a) ( case 0: // if (a === 0) case 1: // if (a === 0) alert("Zero or one"); // then print... break; case 2: // if (a === 2) alert("Two"); // tada prikazujemo... break; // else alert("Mnogo"); // prikazujemo... )

Kako grupirati nekoliko opcija?

Za izvođenje istih naredbi moguće ih je grupirati nekoliko slučaj. Kao u gornjem primjeru:

Slučaj 0: slučaj 1: upozorenje("Nula ili jedan"); pauza; ...

Kada je a = 0 i a = 1, izvršava se ista naredba: alert("Nula ili jedan");

Primjer 4: Traži od korisnika da unese boju. Ispišite engleski prijevod unesene boje. Za boju "plava" I "plava" proizvode istu vrijednost.


✍ Rješenje:
  • Napravite web stranicu s html kosturom i oznakom skripta.
  • Inicijaliziraj varijablu boja
  • var color = prompt("Koje boje?" ) ;

    var color = prompt("Koje boje?");

  • Provjerite vrijednost varijable pomoću konstrukcije znoj, izlazeći za svaku vrijednost odgovarajući prijevod:
  • prekidač (boja) ( velika i mala slova "crvena" : upozorenje("crvena"); prekid; velika mala "zelena": upozorenje("zelena"); prekid; // ...

    Ako varijabla boja ima vrijednost “crveno”, zatim prikazati prijevod u modalnom prozoru - “crveno” i izaći iz strukture (prekid;). Ako varijabla boja ima vrijednost “green”, zatim prikazati prijevod u modalnom prozoru - “green” i izaći iz strukture (break;).

  • Za cvijeće "plava" I "plava" izvršite grupiranje:
  • // ... case "plavo": case "plavo": upozorenje("plavo"); pauza; // ...

    Ako varijabla boja ima vrijednost "plavo" ili varijablu boja ima vrijednost “plavo”, zatim prikazati prijevod u modalnom prozoru - “plavo” i izaći iz strukture (prekid;).

  • Organizirajte izlaz za one boje koje program ne nudi:
  • // ... zadano : upozorenje( "Nemamo informacija o ovoj boji") ) // krajnji prekidač

    // ... default: alert("nemamo informacija o ovoj boji") ) // krajnji prekidač

  • Testirajte skriptu u pregledniku.

Js zadatak 3_6. Pronađite i popravite pogreške u sljedećem isječku koda:

14 15 16 17 prom. broj = prompt( "Unesite broj 1 ili 2:") ; prekidač (broj) ( case "1" (document.write ("One") ; ); break ; case "2" (document.write ( "Two" ) ;) ; break ; default (document.write ( "Unijeli ste vrijednost koja nije 1 i 2") ; } ; }

var broj = prompt("Unesite broj 1 ili 2:"); prekidač (broj) ( case "1" ( document.write("One"); ); break; case "2" ( document.write("Two"); ); break; default ( document.write("Unijeli ste vrijednost koja nije 1 i 2"); ); )


Js zadatak 3_7.Što će se prikazati na ekranu kada se pokrene sljedeći kod?:

1 2 3 4 5 6 7 8 9 10 11 12 13 promjenljiva vrijednost = "2" ; prekidač (vrijednost) ( ​​case "1" : case "2" : case "3" : document.write ("Hello") ; break ; case "4" : case "5" : document.write ( "Svijet" ) ; default : document.write ("Greška" ) ;

promjenljiva vrijednost = "2"; prekidač (vrijednost) ( ​​case "1": case "2": case "3": document.write("Hello"); break; case "4": case "5": document.write("World" ); zadano: document.write("Greška");


Js zadatak 3_8. Pitajte korisnika za broj – broj vrana na grani. Ovisno o unesenom broju (ne više od 10), prikazati poruku: - Sjedi na grani 1 vrana- Sjedi na grani 4 vrane- Sjedi na grani 10 vrana

  1. Ovisno o unesenom broju, mijenja se završetak riječi "vrana".
  2. Za provjeru koristite javascript Switch operator.
  3. Spremite ovu stranicu u svoju mapu s rezultatima (bit će korisna za budući rad).


Pitanja za samokontrolu:

  1. U kojem slučaju je preporučljivo koristiti konstrukciju kao uvjetni operator sklopka?
  2. Koja je svrha zadanog bloka u izjavi? sklopka?
  3. Je li potrebno koristiti naredbu break u konstrukciji? sklopka?
  4. Kako grupirati opcije više vrijednosti u izjavi sklopka?

JavaScript ciklički operatori - Za

Sintaksa:

for(početna vrijednost brojača; uvjet; povećanje brojača) ( //..blok naredbi..)

Važno: Petlja u javascriptu za koristi se kada se unaprijed zna koliko puta treba ponoviti cikličke radnje (koliko iteracija ima petlja)

  • Izraz dodjele koristi se kao početna vrijednost brojača iteracija: na primjer, i=0 - brojač petlje počinje od nule:
  • for(var i = 0; uvjet; povećanje brojača) ( //..blok naredbi..)

  • Povećanje brojača određuje korak s kojim se brojač treba povećavati: na primjer, označava da će svako ponavljanje petlje biti popraćeno povećanjem za 1 :
  • for(var i = 0; uvjet; i++) ( //..blok naredbi..)

  • Uvjet petlje je konačna vrijednost brojača: na primjer, i10, zaustavlja petlju:
  • for(var i = 0; i<10; i++) { //..блок операторов.. }

Pogledajmo primjer korištenja for petlje u javascriptu:

Primjer 5: Ispiši niz brojeva 0 1 2 3 ... 9 , svaka znamenka je u novom retku. 0 1 2 ... 8 9


✍ Rješenje:
  • Za prikaz niza brojeva koristit ćemo for brojač petlje, koji bi trebao promijeniti svoju vrijednost iz 0 prije 9 prema slijedu.
  • Dakle za početna vrijednost brojača petlje postavite vrijednost na 0 ; kao uvjeti ciklusa postavite konačnu vrijednost - ii=9; kontra korak treba biti jednak 1 (i++), jer je razlika između članova niza jedan:
  • za (var i=0; i<10; i++) { document.write(i+"
    "); }

    U primjeru, vrijednosti brojača petlje prikazane su na zaslonu, budući da će se prirast brojača i++ pojaviti na zaslonu. 0 1 2 3 ... 9 , pri čemu svaka znamenka počinje u novom retku (tag
    ).

  • Testirajte skriptu u pregledniku.

Js zadatak 3_9. 1 prije 15 .

  1. Koristite brojač petlje kao niz brojeva za.
  2. Za varijablu zbrajatelja koristite identifikator varijable iznos.

Isječak koda:

Za (var i=...;...;...)( zbroj = zbroj + ...; ) ...

Naredbe za izlaz iz petlje pauza I nastaviti u JavaScriptu. Operater Izlaz

Operator break prekida izvođenje cijelog tijela petlje, tj. izlazi iz petlje u javascriptu.

Dok naredba continue prekida izvođenje trenutne iteracije petlje, ali nastavlja izvođenje petlje od sljedeće iteracije.

Pogledajmo rad operatora prekida i nastavka na primjeru:

Primjer: Rastavite algoritam fragmenta koda. Što će biti izlaz?

Isječak koda:

1 2 3 4 5 6 za (var i= 0; i< 10 ; i++ ) { if (i== 4 ) continue ; document.write (i+ "
" ) ; if (i== 8 ) break ; )

za (var i=0;i<10;i++) { if (i==4) continue; document.write(i+"
"); if (i==8) break; )


✍ Rješenje:
  • Treći redak primjera sadrži uvjet zbog kojeg broj 4 neće biti prikazan: operater nastavitiće prijeći na sljedeću iteraciju petlje bez dovršavanja trenutne.
  • Redak broj 5 izlazi iz petlje, ali u isto vrijeme broj 8 će se prikazati na ekranu, budući da izlazna izjava dolazi prije uvjeta (u 4. redu). Upoznavši se pauza, tumač će prekinuti petlju.
  • Da. ekran će prikazati: 0 1 2 3 5 6 7 8 - svaka znamenka je u novom retku.

Zadatak Js 3_10. Ispiši zbroj svih cijelih brojeva iz 1 prije 15 , isključujući brojeve iz ukupnog iznosa 5 I 7 .

Izjava o izlasku

Jezik javasctipt pruža operator za izlazak iz programskog koda - operator izlaza.
Najčešća uporaba operatora je uklanjanje pogrešaka pri unosu korisnika.


Pogledajmo primjer:

Primjer 6: Tražite od korisnika da unese broj. Ako uneseni broj nije broj, prikažite poruku "Trebam broj!" i zaustaviti program.


✍ Rješenje:
  • Inicijaliziraj varijablu broj vrijednost koju je korisnik unio u modalni prozor:
  • var broj = prompt("Unesite broj");

  • Pomoću funkcije parseInt za pretvaranje niza u cijeli broj provjerite je li unesena vrijednost broj:
  • broj=parseInt(broj); // vrati NaN - ne broj

    Ako uneseni broj nije broj, funkcija će vratiti vrijednost NaN (s engleskog. ne broj- nije broj).

  • Provjerite vrijednost varijable broj pomoću funkcije isNaN:
  • x = isNaN(broj); // vratit će true ako vrijednost nije numerička

    Funkcija isNaN vraća vrijednost pravi u slučaju da varijabla nije broj

  • Po pravilo "laži" organizirati provjeru vrijednosti varijable x. Ako vrijednost nije brojčana, ispišite odgovarajuću bilješku i izađite iz programa:
  • if (x)( alert("Potreban broj!"); izlaz; // izlaz iz programa )

  • Za nastavak programa (ako je unesena vrijednost bila broj), prikažite sljedeći upit za unos:
  • alert("Unesite drugi broj");// ako unesete ne-broj, operator se neće izvršiti

  • Testirajte skriptu u pregledniku.

Pitanja za samokontrolu:

  1. Navedite tri parametra petlje za i objasniti njihovu svrhu.
  2. Koje se naredbe koriste za izlazak iz petlje i njezino prekidanje? Navedite primjere njihove uporabe.
  3. Koja je svrha operatora? Izlaz?

Je li moguće imati više brojača u jednom FOR-u?

Zanimljiv rad s for petljom moguć je pri korištenju istovremeno dva brojača u petlji.
Pogledajmo primjer:

Primjer 7: Koristeći skriptu, ispišite sljedeće parove varijabla-vrijednost u tri retka: i=0 j=2 i=1 j=3 i=2 j=4


✍ Rješenje:
  • U for petlji organizirajte dva brojača: brojač i za ispis niza 0 1 2 , brojač j za sekvencijski izlaz 2 3 4 :
  • 1 2 3 za (i= 0, j= 2; i< 10 , j< 5 ; i++, j++ ) { }

    za (i=0, j=2; i<10, j<5; i++, j++) { }

    Svaki od tri parametra for petlje sada ima dvije vrijednosti koje su navedene odvojeno zarezima(na primjer, prvi parametar s dvije vrijednosti: i=0, j=2). Navedeni su sami parametri odvojene točkom i zarezom(;).

  • Za izlaz iz svakog retka koristite oznaku
    :
  • 1 2 3 4 za (i= 0, j= 2; i< 10 , j< 5 ; i++, j++ ) { document.write ("
    i=" , i, "j=" , j) ;)

    za (i=0, j=2; i<10, j<5; i++, j++) { document.write("
    i=", i, "j=",j); )

Generiranje stranice u hodu: kako je to?

Prije izvođenja sljedećeg zadatka, pogledajmo primjer dinamička izgradnja html stranice koristeći javascript.

Primjer 8:

  • Morate dinamički generirati popise s grafičkim oznakama i numerirane popise na web stranici na temelju korisničkog unosa: zatražite od korisnika da unese prikaz popisa(numerirano (brojem 1) ili označeno (brojem 2)), a zatim broj stavki popisa.
  • Ovisno o odgovoru, prikažite oznake popisa s grafičkim oznakama ili numeriranog popisa s potrebnim brojem stavki.
  • Ako je unesena nepostojeća vrsta popisa, prikazati poruku "Unesite ispravnu vrstu!" i izađite iz programa ().

Prisjetimo se oznaka:
oznake numeriranog popisa:

<ol > <li > <li > <li > </ol>

oznake popisa s grafičkim oznakama:

var listType=prompt("Unesite "1" - ako je popis s grafičkim oznakama, "2" - ako je popis s brojevima");

  • Provjerite unesenu vrijednost: za numerirani popis (broj 1) ispišite tag
      , za označeno (brojem 2) - tag
        . Ako je unesena druga vrijednost, ispisati bilješku i završiti program:

            ") else ( alert("Unesite ispravnu vrstu"); izlaz; )

          • Inicijaliziraj varijablu kolvo vrijednost koju je korisnik unio u modalni prozor:
          • var kolvo=prompt("Unesite broj bodova");

          • Za pretvaranje vrijednosti niza u numeričku vrijednost upotrijebite funkciju parseInt:
          • za (var i=1; i<=kolvo; i++) document.write("");

          • Budući da se liste zatvaraju odgovarajućim oznakama, ovisno o vrsti liste ispišite završne oznake:
          • if (listType== "1" ) document.write("" ) else if (listType== "2" ) document.write ("" ) ;

            if (listType=="1") document.write("

        ") else if (listType=="2") document.write("
      ");

    1. Testirajte skriptu u pregledniku.
    2. Js zadatak 3_11.
      Napišite skriptu koja prikazuje oznake ulazni(elementi upravljanja) različitih vrsta, ovisno o unesenom broju:

      1 - polje za tekst,
      2 - dugme,
      3 - radio(sklopka).

      Također treba zatražiti broj prikazanih oznaka.

      Prisjetimo se oznaka:

      Za 1 - tekstualno polje: Za 2 - gumb: Za 3 - radio:

      Primjer izlaza:

      Zadatak Js 3_12. Nacrtajte šahovsku ploču 9x9 koristeći javascript za petlje. Trebali biste "nacrtati" ploču koristeći html oznake za tablicu:

      Prisjetimo se oznaka:

      <granica tablice = "1" širina = "30%" > <tr > <td >-</td> -</td> </tr> </stol>

      --

      • Da biste nacrtali 9 redaka, trebate organizirati vanjsku for petlju s brojačem i.
      • Da biste nacrtali 9 ćelija u svakom retku, morate organizirati unutarnju (ugniježđenu) for petlju s brojačem j.
      • Da biste prikazali oznake ćelija i reda, trebali biste koristiti metodu document.write.

      Proizlaziti:

      Dodatno:

      1. Prikažite tablicu množenja u ćelijama tablice pomoću brojača petlji (i i j).
      2. Prikaži prvi redak i prvi stupac s crvenom pozadinom (atribut ćelije tablice bgcolor):
        <td bgcolor = "crveno" >-</td>

        -

      Proizlaziti:


      Pitanja za samokontrolu:

      1. Objasnite što znači koncept "dinamičke izrade stranica"?
      2. Koja se jezična konstrukcija najčešće koristi pri dinamičkoj izgradnji stranice?

      javascript ciklički operatori - while

      Sintaksa naredbe while je:

      dok (uvjet) ( //..blok iskaza.. );

      Primjer: Prikaz potencije dvojke do dijaloškog okvira 1000 (2, 4, 8 ... 512). Koristite metodu alert().


      ✍ Rješenje:
      • Popis skripti:
      • 1 2 3 4 5 var a = 1; dok (a< 1000 ) { a*= 2 ; alert(a) ; }

        var a = 1; dok (a< 1000){ a*=2; alert(a); }

        a*=2 → korištena je složena operacija dodjele: proizvod kombiniran s dodjelom, tj. isto kao a = a*2

      • Testirajte rezultat u svom pregledniku.

      Kako naredbe break i continue rade u while petlji?

      Primjer:

      var a = 1; dok (a< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; }

      var a = 1; dok (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }

      Potencija dvojke bit će izlazna do 128 uključujući i vrijednost 64 nedostajat će. Oni. u dijaloškim okvirima vidjet ćemo: 2 4 8 16 32 128

      Zadatak Js 3_13. Koje će vrijednosti ispisati sljedeći isječak koda?

      var counter = 5; dok (brojač< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }


      Zadatak Js 3_14. Napišite građevinski kod x do stupnja g pomoću while petlje. Upitajte vrijednosti varijabli i prikažite rezultat pomoću alert() .

      Dovršite kôd:

      1 2 3 4 5 6 7 8 9 var x = ...; var y = ...; brojač = 1; broj= x; dok (...) ( chislo= x* ...; counter= ...; ) alert(chislo) ;

      var x = ...; var y = ...; brojač = 1; broj=x; dok (...)( chislo=x*...; counter=...; ) upozorenje(chislo);

      A Ispravite pogrešku u programu dizajniranom za pronalaženje faktorijela broja:

      1 2 3 4 5 6 7 8 9 10 11 12 13 var counter = prompt("Unesite broj" ) ; var faktorijel = 1; dokument.pisati( "Faktorijel broja: "+ brojač + "! = " ); do (if (brojač == 0) (faktorijel = 1; prijelom;) faktorijel = faktorijel / brojač; brojač = brojač + 1;) dok (brojač > 0) ; document.write(faktorijel);

      var counter = prompt("Unesite broj"); promjenljivi faktorijel = 1; document.write("Faktorijel broja: " + brojač + "! = "); do ( if (brojač == 0) ( faktorijel = 1; prijelom; ) faktorijel = faktorijel / brojač; brojač = brojač + 1; ) dok (brojač > 0); document.write(faktorijel);


      Zadatak Js 3_16. Izmijenite program da korisnik unese ime:

      Tražite korisničko ime sve dok korisnik stvarno ne unese ime (tj. polje je stvarno ispunjeno i tipka za odustajanje nije pritisnuta). Kada je ime uneseno, zatim prikaz "Zdravo, ime!". dokument.

      Kako pronaći greške u javascriptu?

      U nekim slučajevima kod na stranici ne radi iz nepoznatog razloga. Gdje tražiti grešku? U takvim slučajevima možete koristiti operator try..catch.

      Naredba try..catch pokušava izvršiti dio koda, a ako postoji greška u kodu, moguće je prikazati grešku na ekranu.
      Greška je pohranjena u objektu e.message.

      Pogledajmo rad operatera na primjeru:

      Primjer: napisati izjavu o pogrešci u programu. Provjerite pogreške u navodno pogrešnom kodu: ako postoji greška u kodu, prikažite poruku "obrada pogreške: naziv pogreške". Nakon provjere pogrešnog iskaza, bez obzira postoji li greška u kodu, prikazati poruku "završne radnje"


      ✍ Rješenje:
      • Kao poruku o pogrešci koristit ćemo metodu prompt(), napisanu s pogreškom - potaknuti(). Priložite poruku pogreške u blok pokušaja:
      • upozorenje("prije"); pokušaj ( promt("unesi broj"); // iskaz s greškom)

        Pokušajte s engleskog - “try”, stoga stavljamo naredbu try ispred dijela koda koji može sadržavati pogrešku (u našem slučaju pogreška stvarno postoji).

      • Poruku o pogrešci treba smjestiti u catch blok:
      • 6 7 8 9 uhvatiti (e) ( upozorenje( "obrada grešaka: "+ e.poruka); )

        catch(e) ( alert("obrada pogreške: "+e.message); )

        Ako stvarno postoji pogreška, tada catch operator pohranjuje tu pogrešku u e objekt. U budućnosti se može prikazati u dijaloškom okviru - e.message.

      • Konačnu poruku, koja mora biti ispisana bez obzira na to postoji li greška u kodu, smjestite u finally blok:
      • konačno ( alert("konačne radnje"); ) alert("nakon");

        Ako i dalje postoji pogreška, tada će tumač, nakon što ju je ispisao u našem primjeru, nastaviti s izvođenjem bloka catch, a zatim konačno (od engleskog “completion”, “finally”), koji će se uvijek izvršiti, bez obzira da li bilo greške ili ne. Čak i ako postoji greška u catch bloku.

      Važno: Blok finally u konstrukciji nije obavezan.


      Zadatak Js 3_17. Slijedite gornji primjer uz sljedeće izmjene:

    3. Uklonite finally blok i pratite izvršavanje koda.
    4. Zamijenite pogrešni operator operatorom bez pogreške i pogledajte kakav je rezultat.
    5. Sažetak:

      Lekcija je pokrivala sljedeće operatore i konstrukcije jezika javascript:

      Javascript uvjetne izjave:

    6. izjava if
    7. Uvjetna dodjela (ternarni operator)
    8. izjava prebaciti
    9. Operatori petlje:

    10. za petlju
    11. while petlja
    12. do...while petlja
    13. Za...u petlji
    14. Završni zadatak Js 3_18.
      Napravite igru ​​za dvoje:

      1. Program traži od prvog igrača da unese broj iz 1 prije 100 (drugi igrač ne vidi upisani broj). Zatim se od drugog igrača traži da pogodi uneseni broj. Kao odgovor se prikazuje poruka "nekoliko" ili "Puno" ovisno o unesenom odgovoru. Ako igrač točno pogodi, prikazuje se čestitka. Ako ne pogodi, igra se nastavlja (sve dok se broj stvarno ne pogodi).
      2. Izbrojite broj pokušaja i proizvedite rezultat kada je broj riješen.


      Pitanja za samokontrolu:

      1. Kada je prikladno koristiti For In petlju? Navedite primjer njegove uporabe.
      2. Koja je svrha naredbe try..catch?
      3. Objasnite svrhu svakog bloka naredbi try..catch.


  • reci prijateljima
    Pročitajte također