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šina | Mobilni | poslužitelj | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Krom | Rub | Firefox | Internet Explorer | Opera | Safari | Android web-prikaz | Chrome za Android | Firefox za Android | Opera za Android | Safari na iOS-u | Samsung Internet | Node.js | |
ako...drugo | Puna podrška za Chrome 1 | Edge Potpuna podrška 12 | Firefox Puna podrška 1 | IE puna podrška 3 | Opera Potpuna podrška Da | Safari Potpuna podrška Da | WebView Android Puna podrška 1 | Chrome Android Puna podrška 18 | Firefox Android Puna podrška 4 | Opera Android Puna podrška Da | Safari iOS Puna podrška Da | Samsung Internet Android Puna podrška 1.0 | nodejs 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:
- Koja je sintaksa ternarnog operatora?
- 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
- Provjerite vrijednost varijable pomoću konstrukcije znoj, izlazeći za svaku vrijednost odgovarajući prijevod:
- Za cvijeće "plava" I "plava" izvršite grupiranje:
- Organizirajte izlaz za one boje koje program ne nudi:
- Testirajte skriptu u pregledniku.
var color = prompt("Koje boje?" ) ; |
var color = prompt("Koje boje?");
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;).
// ... 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;).
// ... zadano : upozorenje( "Nemamo informacija o ovoj boji") ) // krajnji prekidač |
// ... default: alert("nemamo informacija o ovoj boji") ) // krajnji prekidač
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
- Ovisno o unesenom broju, mijenja se završetak riječi "vrana".
- Za provjeru koristite javascript Switch operator.
- Spremite ovu stranicu u svoju mapu s rezultatima (bit će korisna za budući rad).
Pitanja za samokontrolu:
- U kojem slučaju je preporučljivo koristiti konstrukciju kao uvjetni operator sklopka?
- Koja je svrha zadanog bloka u izjavi? sklopka?
- Je li potrebno koristiti naredbu break u konstrukciji? sklopka?
- 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:
- 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 :
- Uvjet petlje je konačna vrijednost brojača: na primjer, i10, zaustavlja petlju:
for(var i = 0; uvjet; povećanje brojača) ( //..blok naredbi..)
for(var i = 0; uvjet; i++) ( //..blok naredbi..)
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:
- Testirajte skriptu u pregledniku.
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
).
Js zadatak 3_9. 1 prije 15 .
- Koristite brojač petlje kao niz brojeva za.
- 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:
- Pomoću funkcije parseInt za pretvaranje niza u cijeli broj provjerite je li unesena vrijednost broj:
- Provjerite vrijednost varijable broj pomoću funkcije isNaN:
- 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:
- Za nastavak programa (ako je unesena vrijednost bila broj), prikažite sljedeći upit za unos:
- Testirajte skriptu u pregledniku.
var broj = prompt("Unesite broj");
broj=parseInt(broj); // vrati NaN - ne broj
Ako uneseni broj nije broj, funkcija će vratiti vrijednost NaN (s engleskog. ne broj- nije broj).
x = isNaN(broj); // vratit će true ako vrijednost nije numerička
Funkcija isNaN vraća vrijednost pravi u slučaju da varijabla nije broj
if (x)( alert("Potreban broj!"); izlaz; // izlaz iz programa )
alert("Unesite drugi broj");// ako unesete ne-broj, operator se neće izvršiti
Pitanja za samokontrolu:
- Navedite tri parametra petlje za i objasniti njihovu svrhu.
- Koje se naredbe koriste za izlazak iz petlje i njezino prekidanje? Navedite primjere njihove uporabe.
- 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 :
- Za izlaz iz svakog retka koristite oznaku
:
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(;).
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 > 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");
- , za označeno (brojem 2) - tag
- . Ako je unesena druga vrijednost, ispisati bilješku i završiti program:
- Inicijaliziraj varijablu kolvo vrijednost koju je korisnik unio u modalni prozor:
- Za pretvaranje vrijednosti niza u numeričku vrijednost upotrijebite funkciju parseInt:
- Budući da se liste zatvaraju odgovarajućim oznakama, ovisno o vrsti liste ispišite završne oznake:
- ") else ( alert("Unesite ispravnu vrstu"); izlaz; )
var kolvo=prompt("Unesite broj bodova");
za (var i=1; i<=kolvo; i++) document.write("");
if (listType== "1" ) document.write("" ) else if (listType== "2" ) document.write ("" ) ; |
if (listType=="1") document.write("
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:
- Prikažite tablicu množenja u ćelijama tablice pomoću brojača petlji (i i j).
- Prikaži prvi redak i prvi stupac s crvenom pozadinom (atribut ćelije tablice bgcolor):
<td bgcolor = "crveno" >-</td> -
Proizlaziti:
Pitanja za samokontrolu:
- Objasnite što znači koncept "dinamičke izrade stranica"?
- 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:
- Testirajte rezultat u svom pregledniku.
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
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:
- Poruku o pogrešci treba smjestiti u catch blok:
- Konačnu poruku, koja mora biti ispisana bez obzira na to postoji li greška u kodu, smjestite u finally blok:
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).
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č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:
Sažetak:
Lekcija je pokrivala sljedeće operatore i konstrukcije jezika javascript:
Javascript uvjetne izjave:
Operatori petlje:
Završni zadatak Js 3_18.
Napravite igru za dvoje:
- 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).
- Izbrojite broj pokušaja i proizvedite rezultat kada je broj riješen.
Pitanja za samokontrolu:
- Kada je prikladno koristiti For In petlju? Navedite primjer njegove uporabe.
- Koja je svrha naredbe try..catch?
- Objasnite svrhu svakog bloka naredbi try..catch.