Ushbu maqolada biz shartli va ni ko'rib chiqamiz mantiqiy operatorlar JavaScript tili.
Shartli gaplar JavaScript tilidagi (ECMAScript) bayonotlar boʻlib, ular baʼzi shartlarga qarab bir yoki bir nechta aniq koʻrsatmalarni bajarishga imkon beradi.
JavaScript-da shartli bayonotlar shakllari:
if iborasining sintaksisi:
Agar (shart) bayonoti
Shartli if bayonoti quyidagilardan iborat:
Masalan:
Agar (haqiqiy) hisob = 4 bo'lsa;
Bu misol shart sifatida true dan foydalanadi. Bu shuni anglatadiki, count = 4 buyrug'i doimo bajariladi. Bu misol faqat if iborasi qanday ishlashini tushuntirish uchun berilgan, chunki u hech qanday ma'nodan mahrum.
Masalan, ovozlar o'zgaruvchisining qiymatini 1 ga oshiramiz, agar u (uning turi) raqam bo'lsa:
Agar (ovozlar turi === “son”) ovoz++;
Agar siz bir nechta ko'rsatmalarni bajarishingiz kerak bo'lsa, ular jingalak qavslarga joylashtirilishi kerak:
Agar (ovozlar turi === "son") ( ovozlar++; console.log("Ovozlar soni: " + ovozlar); )
Agar (ovozlar turi === "raqam") (ovozlar++; )
If...else buyrug'i shart rost bo'lganda ma'lum ko'rsatmalarni bajarish zarur bo'lganda, boshqalari esa shart noto'g'ri bo'lganda ishlatiladi.
Sintaksis:
If (shart) (bir yoki bir nechta bayonot (shart to'g'ri yoki rost bo'lganda bajarilishi kerak)) boshqa (bir yoki bir nechta bayonot (shart noto'g'ri bo'lsa yoki noto'g'ri bo'lsa bajariladi))
Misol uchun, konsolga raqamning juft yoki yo'qligi haqida xabarni chop qilaylik:
Agar (% 2 raqam) ( console.log("Raqam toq!"); ) else ( console.log("Raqam juft!"); )
Agar if ifodasi shartidagi ifoda true yoki false ga teng bo'lmasa, JavaScript uni shu qiymatlardan biriga o'tkazadi. U bu harakatni "yolg'on qoidasi" yordamida amalga oshiradi.
Ushbu qoidaning ma'nosi: quyidagi qiymatlardan tashqari har qanday ifoda haqiqatdir:
Misol uchun, nameUser o'zgaruvchisida qanday qiymat saqlanganiga qarab brauzer konsoliga xush kelibsiz xabarni chop qilaylik:
If (nameUser) ( console.log("Salom, " + name + "!"); ) else ( console.log("Salom, mehmon!"); )
Agar nameUser o'zgaruvchisi bo'sh qatorni o'z ichiga olsa, u holda yolg'on qoidasiga ko'ra, u false qiymatiga o'tkaziladi. Shuning uchun konsolda "Salom, mehmon!" xabari ko'rsatiladi. .
Va agar, masalan, nameUser o'zgaruvchisi "Timur" qatorini o'z ichiga olsa, u holda shartdagi ifoda true qiymatiga o'tkaziladi. Natijada konsolda “Salom, Timur!” degan xabar paydo bo‘ladi. .
Sintaksis:
If (shart1) ( 1-bo'lim ) else if (2-shart) ( 2-bo'lim ) else if (3-shart) ( 3-band //... ) else if (shartN) ( iboralar N ) else ( ifodalar bajariladi, agar ulardan hech biri bo'lmasa. shartlar to'g'ri emas yoki bu qiymatga o'tkazilmagan)
Uchlik operator – JavaScript operatori, bu shartga qarab, zarur bo'lganda, berilgan ikkita ifodadan birini bajarish uchun ishlatilishi mumkin.
Sintaksis:
Vaziyat? ifoda 1: ifoda 2
Uchlik operator uchta operanddan iborat bo'lib, ular belgilar yordamida ajratiladi? Va: . Birinchi operandda uchlik operatorning sharti ko'rsatilgan. Qavslar ichiga ham yozilishi mumkin. Agar shart rost bo'lsa yoki u shu qiymatga o'tkazilsa, ifoda1 bajariladi, aks holda ifoda2 bajariladi.
Masalan:
(raqam > 10)? console.log("Raqam 10 dan katta!") : console.log("Raqam 10 dan kichik yoki unga teng");
JavaScript bir nechta uchlik operatorlarga ruxsat beradi (?:):
Var dayNumber = new Date().getDay(); kun = (kun raqami === 0) ? "Yakshanba" : (kun raqami === 1) ? "Dushanba" : (kun raqami === 2) ? "Seshanba" : (kun raqami === 3) ? "Chorshanba" : (kun raqami === 4) ? "Payshanba" : (kun raqami === 5) ? "Juma" : (kun raqami === 6) ? "Shanba" : "Haftaning noma'lum kuni"; console.log("Bugun " + day.toLowerCase() + ".");
Yuqoridagi misol, lekin bir nechta if...else iboralaridan foydalanish:
Var dayNumber = new Date().getDay(); agar (kunNumber === 0) ( kun = "Yakshanba"; ) boshqacha bo'lsa (kunNumber === 1) (kun = "Dushanba"; ) boshqa bo'lsa (kunNumber === 2) (kun = "Seshanba"; ) else if (dayNumber === 3) ( day = "Chorshanba"; ) else if (dayNumber === 4) (day = "Payshanba"; ) else if (dayNumber === 5) ( kun = "Juma"; ) else if (dayNumber === 6) ( kun = "Shanba"; ) else ( kun = "Haftaning noma'lum kuni"; ) console.log("Bugun " + day.toLowerCase() + ".") ;
Switch operatori ifoda qiymatiga qarab ko'rsatmalarning bir nechta versiyasidan bittasini bajarish uchun mo'ljallangan. Bir yoki boshqa variantni tanlash, ifoda natijasining ish qiymatiga qat'iy tengligi bilan belgilanadi ( hol ).
Switch bayonot sintaksisi:
Switch (ifoda) ( case qiymati1: // ... ifoda natijasi "qiymat1" tanaffus bo'lsa, bajariladigan ko'rsatmalar; // ixtiyoriy ko'rsatma (agar ishlatilmasa, keyingi almashtirish buyrug'i bajariladi) case qiymati2 : // ... ifoda "qiymat2" deb baholansa, bajariladigan ko'rsatmalar; // ixtiyoriy ko'rsatma (agar ishlatilmasa, switch operatorining keyingi buyrug'i bajariladi) // ... case qiymatiN: / / .. ifodaning natijasi "valueN" bo'lsa, bajariladigan ko'rsatmalar tanaffus; // ixtiyoriy ko'rsatma (agar foydalanilmasa, keyingi almashtirish buyrug'i bajariladi) sukut bo'yicha: // agar bajariladigan ko'rsatmalar ifodaning natijasi qiymatlarning bir nechtasiga teng emas)
Standart kalit so'z ixtiyoriy. Ifodaning natijasi hech qanday holat qiymatiga teng bo'lmasa, bajarilishi kerak bo'lgan ko'rsatmalarni belgilash zarur bo'lganda ishlatiladi.
Break bayonoti ixtiyoriy. U switch operatorining bajarilishini to'xtatish va boshqaruvni undan keyin keladigan buyruqqa o'tkazish uchun mo'ljallangan.
Masalan, brauzer konsolida konfetlar soni haqidagi xabarni ko'rsatamiz:
Var countCandyBoys = 1, countCandyGirls = 2, xabar; almashtirish (countCandyBoys + countCandyGirls) (1-holat: xabar = "Bir konfet"; tanaffus; 2-holat: 3-holat: xabar = "Ikki yoki uchta konfet"; tanaffus; 4-holat: xabar = "To'rtta konfet"; tanaffus; standart: message = "Bir emas, ikkita emas, uchta yoki to'rtta konfet emas"; ) // xabarni konsolga chop eting console.log(xabar);
Yuqoridagi misolda baholangan ifoda 3 ga teng. Shuning uchun xabar = "Ikki yoki uchta konfet" va break iboralari bajariladi. Break operatori switch operatorining keyingi bajarilishini to'xtatadi va boshqaruvni undan keyingi operatorga o'tkazadi, ya'ni. console.log (xabar) . U konsolga xabarni chop etadi "Ikki yoki uchta shirinlik".
Masalan, konsolda haftaning joriy kunini ko'rsatamiz:
var day = ""; switch(new Date().getDay()) (holat 0: kun = "Yakshanba"; tanaffus; 1-holat: kun = "dushanba"; tanaffus; 2-holat: kun = "seshanba"; tanaffus; 3-holat: kun = "Chorshanba"; tanaffus; 4-holat: kun = "payshanba"; tanaffus; 5-holat: kun = "juma"; tanaffus; 6-holat: kun = "shanba"; tanaffus; standart: kun = "haftaning noma'lum kuni" ; ) console.log("Bugun " + day.toLowerCase() + ".");
Break iborasidan foydalanmaydigan misol:
varresult = "muvaffaqiyat"; switch (natija) ( "muvaffaqiyatli" holati: console.log("Muvaffaqiyat!"); "invalidCaptcha" holati: console.log("Yaroqsiz captcha!"); sukut bo'yicha: console.log("Xato!"); )
Ushbu misolda switch iborasi muvaffaqiyatga teng. Shuning uchun, "Muvaffaqiyat!" xabarini chop etadigan console.log("Muvaffaqiyat!") bayonoti bajariladi. konsolga. Ammo undan keyin hech qanday break bayonoti mavjud emasligi sababli, skriptning bajarilishi keyingi variantda davom etadi. Shunday qilib, ko'rsatmalar yo'lda tanaffusga duch kelmaguncha yoki switch operatorining oxirigacha bajariladi. Ushbu misolni bajarish natijasida konsolda 3 ta xabar paydo bo'ladi: "Muvaffaqiyatli!" , "Noto'g'ri captcha!" va "Xato!" .
Ba'zi hollarda, bu xatti-harakat talab qilinishi mumkin, ammo bunda emas. Bu yerda shunchaki xato.
To'g'rilangan misol:
varresult = "muvaffaqiyat"; switch (natija) ( "muvaffaqiyat" holati: console.log("Muvaffaqiyat!"); tanaffus; "invalidCaptcha" holati: console.log("Yaroqsiz captcha!"); break; sukut bo'yicha: console.log("Xato!" );)
JavaScript quyidagi mantiqiy operatorlarni ajratib turadi:
Agar mantiqiy qiymatlar operand1 && operand2 mantiqiy ifodasida ishlatilsa, har bir qiymat rost bo'lsa, bu ifoda rost deb baholanadi; aks holda, bu ifodaning qiymati noto'g'ri bo'ladi.
Noto'g'ri && noto'g'ri // noto'g'ri rost && noto'g'ri // noto'g'ri noto'g'ri && rost // noto'g'ri rost && rost // rost
Agar mantiqiy ifoda operand1 && operand2 mantiqiy bo'lmagan qiymatlardan foydalansa, u holda bu ifodaning natijasi operand1 bo'ladi, agar uni yolg'onga chiqarish mumkin bo'lsa; aks holda, bu ifodaning natijasi operand2 bo'ladi.
5 && 0 // 0 1 && 5 // 5 "string" && undefined // aniqlanmagan "string1" && "string2" // "string2"
Agar mantiqiy ifodada operand1 || operand2 mantiqiy qiymatlari ishlatiladi, agar ulardan kamida bittasi rost bo'lsa, bu ifodaning natijasi to'g'ri bo'ladi; aks holda, bu ifodaning qiymati noto'g'ri bo'ladi.
noto'g'ri || noto'g'ri // noto'g'ri rost || noto'g'ri // haqiqiy noto'g'ri || rost // rost rost || rost // rost
Agar mantiqiy ifodada operand1 || operand2 mantiqiy bo'lmagan qiymatlardan foydalanadi, keyin bu ifodaning natijasi operand1 bo'ladi, agar uni true ga o'tkazish mumkin bo'lsa; aks holda, bu ifodaning natijasi operand2 bo'ladi.
5 || 0 // 5 1 || 5 // 1 "chiziq" || aniqlanmagan // "string" "string1" || "2-qator" // "1-qator"
Mantiqiy ifoda!operand1 agar operand1 noto'g'ri bo'lsa yoki shu qiymatga o'tkazilishi mumkin bo'lsa, rost deb baholanadi; aks holda, bu ifoda false ga baholanadi.
False // rost ! true // false !"string" // false !5 // false"
IN bu misol biz birinchi navbatda var kalit so'zi bilan to'rtta o'zgaruvchini e'lon qilamiz va ularga darhol raqamli qiymatlarni tayinlaymiz. Keyinchalik, oshirish va kamaytirish operatorlari yordamida raqamlarning qiymatlarini o'zgartiramiz. Ma'lumot funksiya yordamida ko'rsatiladi aks-sado("" maqolasiga qarang). Ob'ekt nomini yana bir bor yozmaslik uchun men konstruktsiyadan foydalandim bilan().
Mantiqiy operatorlar
Mantiqiy operatorlar shartni tekshirishda ishlatiladi, takrorlanmaslik uchun qisqartma qilaman: chap operand L.O., o'ng operand esa P.O.
Endi quyidagi skriptni ko'rib chiqing:
//***************************************** // mantiqiy operatsiyalar// logic_if_else.js //***************************************** var a= 10 , b= 100 , WshShell, title, msg1, msg2, msg3, msg4, vbInformation = 64 ; // WScript.Shell sinfining namunasini yarating WshShell = WScript.CreateObject("WScript.Shell" ); sarlavha = "IF ELSE JS shartli bayonoti bilan ishlash"; with(WshShell) ( agar (a>= 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>= 5 || b== 100 ) //true msg2 = "TRUE" ; else msg2 = "FALSE" ; Qalqib chiquvchi oyna (msg2, 5 , sarlavha, vbInformation); //shartli bayonot js if else agar (! a) //false msg3 = "TRUE" ; else msg3 = "FALSE" ; Qalqib chiquvchi oyna (msg3, 5, sarlavha, vbInformation); agar (a&= 100 ) //false msg4 = "TRUE" ; else msg4 = "FALSE" ; Qalqib chiquvchi oyna (msg4, 5, sarlavha, vbInformation); ) |
Oldingi skriptda bo'lgani kabi, bu erda men konstruktsiyadan foydalandim bilan kodni qisqartirish uchun. Biroq, ma'lumotni ko'rsatish uchun biz funksiyadan foydalandik qalqimoq("" maqolasiga qarang). Natijada, dialog oynalari bir necha soniyadan so'ng avtomatik ravishda yopiladi. E'tibor bering, biz bu misolda jingalak qavslardan foydalanmadik. js if shartli bayonotida ular faqat bitta kod satrini emas, balki bir nechtasini bajarish kerak bo'lganda tegishli bo'ladi.
Va nihoyat, kvadrat tenglamani yechish kabi amaliy misolni ko'rib chiqaylik:
// Kvadrat tenglamani yechish// uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; //O'zgaruvchilarni e'lon qilish a=- 2 ; b=6; c= 20; // Diskriminantni qidirish d= Matematik .pow (b, 2 ) - 4 * a * c; agar (d== 0 ) ( x= b/ (2 * a) ; msg= "Tenglama bitta yechimga ega, x aynan"+ x ) boshqacha ( agar (d> 0 ) ( x1= (- b+ Matematik .sqrt (d) ) / (2 * a) ; x2= (- b- Matematika .sqrt (d) ) / (2 * a) msg= "Tenglama ikkita yechimga ega \n x1 aniq"+ x1 + " \n x2 aynan "+x2; // shartli bayonot if else js) else msg= "Yechim yo'q" ; ) WScript.Echo (xabar) ; |
Kundalik hayotda ko'pincha qandaydir sharoitga qarab qandaydir qaror qabul qilish kerak bo'ladi. Misol uchun, dam olish kunida havo iliq bo'lsa, biz dengizga boramiz, aks holda, agar bulutli bo'lsa, biz uyda o'tiramiz.
Dasturlashda bu ham juda keng tarqalgan. Buning uchun mavjud ikkita shartli gap, bu if-else va switch-case. Ushbu maqolada men if-else iborasi haqida, keyingi maqolada esa switch-case haqida gapirib beraman.
Sintaksis shartli operator agar-boshqa Keyingisi:
Agar shart rost bo'lsa, if blokidagi kod bajariladi, aks holda shart noto'g'ri bo'lsa, else blokidagi kod bajariladi.
Yaxshiroq tushunish uchun shunday oddiy misolni olaylik, bizda ma'lum miqdorda pul bor va biz mashina olmoqchimiz va bu erda darhol shunday holat paydo bo'ladi, agar pulimiz etarli bo'lsa, unda biz bu mashinani sotib olamiz, aks holda biz mumkin emas.
Var pul = 35000; // Aytaylik, bizda 35 000 evro bor // Biz sotib olmoqchi bo'lgan mashina 50 000 evro turadi. Va quyidagi holat yuzaga keladi, agar(pul > 50000)( document.write("Biz mashina sotib olamiz"); )else( document.write("Mashina sotib olishga pul yetarli emas"); )
Biz hujjatni saqlaymiz, uni brauzerda ochamiz va sahifada quyidagi xabar ko'rsatilganligini ko'ramiz: "Avtomobil sotib olish uchun pul etarli emas". Agar bizda 50 000 evrodan ko'proq pul bo'lsa, if blokidagi kod bajariladi. Agar bizda roppa-rosa 50 000 evro bo'lsa, biz ham mashina sotib ololmasdik, chunki 50 000 50 000 dan oshmaydi. bu holat rost bo'lsa, katta yoki teng belgisini yozish kerak (>=).
Izoh! Teng mantiqiy amal ikkita teng belgi bilan yoziladi (==). dan kichik yoki teng mantiqiy operatsiya ham mavjud (
Agar faqat bitta bayonot bo'lsa, jingalak qavslar ixtiyoriy, agar blokda bir nechta bayonot bo'lsa, jingalak qavslar talab qilinadi.
Yuqoridagi misol jingalak qavslarsiz juda yaxshi ishlaydi, chunki har ikkala blokda faqat bitta bayonot mavjud.
Ichkarida har qanday mantiqiy amallarni yozishingiz mumkin bo'lsa ular oddiy yoki murakkab bo'ladimi. AND (&&) va OR (||) operatorlaridan ham foydalanishingiz mumkin.
Izoh! else blokining mavjudligi ixtiyoriydir.
Misol uchun, agar a b ga, c esa d ga teng bo'lsa, biz mos keladigan xabarni ko'rsatamiz, aks holda boshqa blok bo'lmasa, biz keyingi qatorga o'tamiz.
Var a = 4, b = 4, c = 8, d = 8; if((a == b) && (c == d)) document.write("a teng b VA c d ga teng"); document.write("Kodning keyingi qatori");
If blokidan keyin bir yoki bir nechta boshqa if bloklari kelishi mumkin va oxirida else bloki mavjud. Bu bir nechta shartlardan foydalanish kerak bo'lganda foydalidir.
Yaxshiroq tushunish uchun kundalik hayotdan misol keltiraylik. Misol uchun, bizda ma'lum miqdordagi savdo nuqtalari mavjud. Xonada faqat bitta rozetka bo'lsa, u holda biz faqat bitta qurilmani ulashimiz mumkin, agar ikkita rozetka bo'lsa, ikkita qurilmani ulashimiz mumkin, agar ko'proq bo'lsa, uydan barcha qurilmalarni elektr tarmog'iga ulashimiz mumkin. .
Endi dasturlashga o'tamiz.
var soket = 2; // Uydagi rozetkalar soni if(socket == 1) document.write("
Biz faqat bitta qurilmani ulashimiz mumkin
"); else if(socket == 2)( document.write("Biz faqat ikkita qurilmani ulashimiz mumkin
"); document.write("Masalan, televizor va noutbuk
"); )else( document.write("Biz barcha qurilmalarni uydan elektr tarmog'iga ulashimiz mumkin
"); }Soket o'zgaruvchisining qiymatiga qarab, u yoki bu kod bloki ishlaydi. Siz allaqachon tushunganingizdek, agar rozetka 1 ga teng bo'lsa, kodning birinchi bloki ishlaydi. Agar rozetka 2 bo'lsa, u holda kodning ikkinchi bloki ishlaydi va agar rozetka boshqa qiymatga ega bo'lsa (hatto manfiy raqam ham), uchinchi kod bloki ishlaydi.
Qisqartma ma'lum bir shartga qarab, o'zgaruvchi u yoki bu qiymatni olishi mumkin bo'lganda ishlatilishi mumkin.
Masalan, a o'zgaruvchining qiymati b o'zgaruvchining qiymatidan katta bo'lsa, u holda x o'zgaruvchiga quyidagi xabarni yozamiz, "a o'zgaruvchisi b o'zgaruvchidan katta", aks holda "a o'zgaruvchisi b o'zgaruvchidan kichik" deb yozamiz. ".
Var a = 50, b = 100, x; x = (a > b) ? "
O'zgaruvchan a Ko'proq o'zgaruvchi b
" : "O'zgaruvchan a Ozroq o'zgaruvchi b
"; //Natija hujjatini chiqaring.write(x);Ushbu maqolada sizga aytmoqchi bo'lgan narsam shu edi. If-else shartli iborasi har bir skriptga qaraganda ko'proq ishlatiladi, shuning uchun uni bilish va tushunish juda muhimdir. Keyingi maqolada men sizga yana bir switch-case shartli gap haqida gapirib beraman.
JavaScript-da dasturning bajarilishiga ta'sir qiluvchi shart konstruktsiyasi mavjud. Agar (ingliz tilida agar) biror narsa bo'lsa, biror narsa to'g'ri bo'lsa, unda bitta ishni bajaring, aks holda (ingliz tilida boshqa) - boshqasini bajaring.
Keling, if iborasi qanday ishlashini tezda ko'rib chiqaylik, bu oddiy va ko'p tushuntirishni talab qilmaydi.
agar (shart) (shart rost bo'lsa, bajariladigan kod)
Hammasi oddiy: agar shart rost bo'lsa, u holda (...) blokidagi kod bajariladi.
vardigit = 4; agar (raqam == 4) ( document.write("Raqam 4."); )
Siz bir oz g'alati kod qilishingiz mumkin:
vardigit = 4; agar (to'g'ri) (document.write ("Shart to'g'ri."); )
else ifodasi if ifodasi bilan birgalikda ishlatilishi mumkin. U "aks holda" deb tarjima qilinadi va muqobil kodni belgilaydi.
vardigit = 4; agar (raqam
Ushbu misolda if va else iboralari uchun jingalak qavslarning turlicha yozilishiga e'tibor bering. Demak, yozish umuman majburiy emas, ikkala sintaksis ham to‘g‘ri.
else bayonotidan keyin ketishi mumkin yangi ko'rsatma agar. Shunday qilib, biz bir nechta shartlarni tekshiramiz.
vardigit = 4; agar (raqam
JavaScript-da PHP kabi elseif bayonoti (bir so'z bilan) yo'q.
Agar siz faqat bitta buyruqni bajarishingiz kerak bo'lsa, unda blokli jingalak qavslar (...) kerak emas. Bizning misolimizda ular o'tkazib yuborilishi mumkin:
vardigit = 4; agar (raqam
If (shart) operatori qavs ichidagi shartni (ifodani) baholaydi va booliy (to'g'ri yoki noto'g'ri) ga aylantiradi.
Keling, JavaScript-da yolg'on borligini yana bir bor ta'kidlaymiz.
Qolganlarning hammasi haqiqat.
Bir nechta mumkin bo'lgan xatolar:
Agar ("noto'g'ri") document.write("Bu haqiqat.
"); agar (noto'g'ri) document.write("Bu haqiqat.
");
Bu erda siz "false" (iqtibos) qatorini mantiqiy turdagi false qiymatidan farqlashingiz kerak.
Agar (" ") document.write("Bu haqiqat.
"); else document.write("Bu noto'g'ri.
");
Bu erda siz " " (bo'shliq ichidagi) qatorni bo'sh "" qatoridan farqlashingiz kerak. Satr ichidagi bo'sh joy uni bo'sh emas, balki o'z ichiga olgan belgi qiladi. Tarjimonga bu harfmi yoki bo‘sh joymi farqi yo‘q – xarakter bu xarakterdir.
var a = 10; varb = (a>1) ? 100:200; ogohlantirish (b);
Agar shart a>1 rost, keyin o'zgaruvchi b qiymat belgilang 100 , aks holda b o'zgaruvchiga qiymat beriladi 200 .
Js 3_4-topshiriq. Kodni to'ldiring: var kalit so'zi yordamida 3 ta mahalliy o'zgaruvchilar e'lon qilinadi. Maks o'zgaruvchiga quyidagi uchlik operatorning qiymatini belgilash kerak: agar a b dan katta bo'lsa, a ni qaytaring, aks holda b ni qaytaring.
Kod parchasi:
agar (a*b< 6) { result = "Мало"; } else { result = "Много"; }
O'z-o'zini nazorat qilish uchun savollar:
Javascript switch bayonoti o'zgaruvchini bir nechta qiymatlar uchun sinab ko'rish uchun xizmat qiladi:
Sintaksis:
switch (o'zgaruvchi yoki ifoda) ( case varianti1: //..bayonot bloki.. break case variant2: //..bayonot bloki.. sukut bo'yicha buzilish: //..bayonot bloki.. )
O'zgaruvchi yoki ifodaning qiymati tekshiriladi: har birida hol qiymatlardan biri tekshiriladi, agar mos qiymat bo'lsa, unga mos keladigan u yoki bu bayonot bloki bajariladi. hol.
Standart xizmat so'zi bilan boshlanadigan blokni o'tkazib yuborish mumkin. Agar sanab o'tilgan qiymatlardan birortasi hammasi bo'lmasa, blokirovka iboralari bajariladi hol tog'ri kelmaydi.
Muhim: Break bayonoti o'zgaruvchining har bir ko'rib chiqilgan qiymatidan keyin talab qilinadi (har biridan keyin hol); agar u ishlatilmasa, quyidagi barcha bayonotlar ko'rsatiladi
Operator bilan solishtiring AGAR:
var a = 2; switch(a) (holat 0: // agar (a === 0) 1-holat: // agar (a === 0) alert("Nol yoki bitta"); // keyin chiqish... tanaffus; case 2: // if (a === 2) alert("Ikki"); // keyin chiqish... tanaffus; standart: // else alert("Ko'p"); // aks holda chiqish... )
Bir nechta variantni qanday guruhlash mumkin?
Xuddi shu gaplarni bajarish uchun bir nechta guruhlash mumkin hol. Yuqoridagi misolda bo'lgani kabi:
0-holat: 1-hol: ogohlantirish("Nol yoki bitta"); sindirish; ...
a = 0 va a = 1 bo'lganda, xuddi shu buyruq bajariladi: alert("Nol yoki bitta");
4-misol: Foydalanuvchidan rang kiritishini so'rang. Tarjimani yuborish ingliz tili rang kiritilgan. Rang uchun "ko'k" Va "ko'k" bir xil qiymat hosil qiladi.
var color = prompt("Qaysi rang?" ); |
var color = prompt("Qanday rang?");
kalit (rang) ("qizil": ogohlantirish ("qizil"); tanaffus; "yashil": ogohlantirish ("yashil"); tanaffus; // ...
Agar o'zgaruvchi bo'lsa rang"qizil" qiymatiga ega, keyin chiqadi modal oyna tarjima - "qizil" va konstruktsiyadan chiqing (break;). Agar o'zgaruvchi bo'lsa rang"yashil" qiymatiga ega, keyin tarjimani ko'rsating - modal oynada "yashil" va konstruktsiyadan chiqing (break;).
// ... "ko'k" holati: "ko'k" holati: alert("ko'k"); sindirish; // ...
Agar o'zgaruvchi bo'lsa rang"ko'k" yoki o'zgaruvchan qiymatga ega rang"ko'k" qiymatiga ega, keyin tarjimani ko'rsating - modal oynada "ko'k" va konstruktsiyadan chiqing (break;).
// ... standart: ogohlantirish( "Bizda bu rang haqida ma'lumot yo'q") ) // tugatish tugmasi |
// ... default: alert("y bizda bu rang haqida hech qanday ma'lumot yo'q") ) // kalitning oxiri
Js 3_6-topshiriq. Quyidagi kod parchasidagi xatolarni toping va tuzating:
14 15 16 17 | varnumber = taklif ( "1 yoki 2 raqamini kiriting:"); kalit (raqam) ( "1" holati (document.write ("Bir"); ); tanaffus; "2" holati (document.write ("Ikki"); ); sindirish; sukut bo'yicha ( document.write ( "Siz 1 va 2 dan boshqa qiymat kiritdingiz") ; } ; } |
var number = prompt("1 yoki 2 raqamini kiriting:"); kalit (raqam) ( "1" holati (doce.write("Bir"); ); tanaffus; "2" (document.write("Ikki"); ); sindirish; standart (document.write("Siz kiritgansiz 1 va 2" dan boshqa qiymat); )
Js 3_7-topshiriq. Quyidagi kod bajarilganda ekranda nima ko'rsatiladi?
1 2 3 4 5 6 7 8 9 10 11 12 13 | var qiymati = "2" ; kalit (qiymat) ("1" hol: "2" hol: "3" hol: hujjat.write ("Salom" ); tanaffus; "4" hol: "5" hol: hujjat.write ("Jahon" ); sukut bo'yicha: document.write("Xato" ); ) |
var qiymati = "2"; switch (qiymat) ("1" hol: "2" hol: "3" hol: hujjat.write("Salom"); tanaffus; "4" hol: "5" hol: document.write("Dunyo" ); sukut bo'yicha: document.write("Xato"); )
Js 3_8-topshiriq. Foydalanuvchidan raqamni so'rang - filialdagi qarg'alar soni. Kiritilgan raqamga qarab (10 dan ko'p bo'lmagan) xabarni ko'rsating: - Filialda o'tirish 1 qarg'a- Filialda o'tirish 4 qarg'a- Filialda o'tirish 10 qarg'a
O'z-o'zini nazorat qilish uchun savollar:
Sintaksis:
for(boshlang'ich hisoblagich qiymati; shart; hisoblagich o'sishi) ( //..bayonot bloki.. )
Muhim: Javascript for loop siklik amallar necha marta takrorlanishi kerakligi oldindan ma'lum bo'lganda qo'llaniladi (loop qancha iteratsiyaga ega)
for(var i = 0; shart; hisoblagich o'sishi) ( //.. bayonot bloki.. )
for(var i = 0; shart; i++) ( //..bayonot bloki.. )
for(var i = 0; i<10; i++) { //..блок операторов.. }
Javascriptda for tsiklidan foydalanish misolini ko'rib chiqing:
5-misol: Raqamlar ketma-ketligini chiqaring 0 1 2 3 ... 9 , har bir raqam - yangi qatordan. 0 1 2 ... 8 9
uchun (var i=0; i<10; i++)
{
document.write(i+"
");
}
Misolda, tsikl hisoblagichining qiymatlari ekranda ko'rsatiladi, chunki i++ hisoblagichining o'sishi mos ravishda ekranda paydo bo'ladi. 0 1 2 3 ... 9
, va har bir raqam - yangi qatordan (teg
).
Js 3_9-topshiriq. 1 oldin 15 .
Kod parchasi:
(var i=...;...;...)( sum = sum + ...; ) ... uchun
Break bayonoti butun tsikl tanasining bajarilishini to'xtatadi, ya'ni. javaScript-dagi tsikldan chiqib ketadi.
Davomlash bayoni siklning joriy iteratsiyasining bajarilishini to'xtatib qo'yadi, lekin keyingi takrorlashdan boshlab tsiklning bajarilishini davom ettirayotganda.
Tanaffusning ishlashini ko'rib chiqing va misol yordamida davom iboralarini ko'rib chiqing:
Misol: Kod parchasi algoritmini tushuning. Chiqarish nima bo'ladi?
Kod parchasi:
1 2 3 4 5 6 | uchun (var i= 0 ; i<
10
;
i++
)
{
if
(i==
4
)
continue
;
document.write
(i+
" " ); agar (i== 8 ) uzilish; ) |
uchun (var i=0;i<10;i++)
{
if (i==4) continue;
document.write(i+"
"); agar (i==8) uzilish; )
Js 3_10-topshiriq. dan barcha butun sonlar yig'indisini chop eting 1 oldin 15 , jami sondan tashqari 5 Va 7 .
Chiqish bayonoti
Javasctipt tili dastur kodidan chiqish operatorini - chiqish operatorini taqdim etadi.
Ko'pincha operator foydalanuvchi kiritish xatosini istisno qilish uchun ishlatiladi.
6-misol: Foydalanuvchidan raqam kiritishini so'rang. Agar raqam bo'lmasa, xabarni ko'rsating "Raqam kerak!" va dasturni to'xtating.
var number = prompt("Iltimos, raqam kiriting");
raqam=parseInt(raqam); // NaN ni qaytaradi - raqam emas
Agar raqam bo'lmagan kiritilsa, funktsiya NaN qiymatini qaytaradi. raqam emas- raqam emas).
x = isNaN(raqam); // agar qiymat raqamli bo'lmasa, true qiymatini qaytaradi
isNaN funktsiyasi qiymatni qaytaradi rost agar o'zgaruvchi raqam bo'lmasa
if (x)( alert("Raqam kerak!"); chiqish; // dasturdan chiqish)
alert("Ikkinchi raqamni kiriting");// agar siz raqam kiritmasangiz, operator bajarilmaydi.
O'z-o'zini nazorat qilish uchun savollar:
Bitta FORda bir nechta hisoblagich bo'lishi mumkinmi?
Foydalanishda for tsikli bilan qiziqarli ishlash mumkin siklda bir vaqtning o'zida ikkita hisoblagich.
Bir misolni ko'rib chiqing:
7-misol: Skriptdan foydalanib, quyidagi o'zgaruvchan qiymat juftlarini uchta qatorga chop eting: i=0 j=2 i=1 j=3 i=2 j=4
1 2 3 | uchun (i= 0 , j= 2 ; i< 10 , j< 5 ; i++, j++ ) { } |
for(i=0, j=2; i<10, j<5; i++, j++) { }
For tsiklining uchta parametrining har biri endi ikkita qiymatga ega bo'lib, ular sanab o'tilgan vergul bilan ajratiladi(masalan, ikkita qiymatli birinchi parametr: i=0, j=2). Parametrlarning o'zi ko'rsatilgan nuqta-vergul orqali(;).
1 2 3 4 | uchun (i= 0 , j= 2 ; i<
10
,
j<
5
;
i++,
j++
)
{
document.write
(" i=" , i, "j=" , j); ) |
for(i=0, j=2; i<10, j<5; i++, j++)
{
document.write("
i=", i, "j=",j); )
Sahifani "parvozda" yaratish: bu qanday?
Keyingi vazifani bajarishdan oldin, misolni ko'rib chiqing html sahifani dinamik ravishda yaratish javascript yordamida.
8-misol:
Keling, teglarni eslaylik:
raqamlangan ro'yxat teglari:
<ol > <li > li > <li > li > <li > li > </ol> |
Belgilangan ro'yxat teglari:
var listType=prompt("Marklangan ro'yxat uchun "1", raqamlangan ro'yxat uchun "2" kiriting");
var kolvo=prompt("Ballar sonini kiriting");
uchun (var i=1; i<=kolvo; i++) document.write("");
agar (listType== "1") document.write("" ) else if (listType== "2" ) document.write ("" ) ; |
agar (listType=="1") document.write("
Js 3_11-topshiriq.
Teglarni ko'rsatadigan skriptni yozing kiritish Kiritilgan raqamga qarab har xil turdagi (boshqaruv elementlari):
1
- matn maydoni,
2
- tugmasi,
3
- radio(almashtirish).
Ko'rsatilgan teglar soni ham so'ralishi kerak.
Keling, teglarni eslaylik:
1 - matn maydoni uchun: 2 tugma uchun: 3 - radio uchun:
Chiqish namunasi:
Js 3_12-topshiriq. Javascript for looplar yordamida 9x9 shaxmat taxtasini chizing. "Chizma" taxtasi jadval uchun html teglariga amal qiladi:
Keling, teglarni eslaylik:
<jadval chegarasi = "1" kengligi = "30%"> <tr > <td >-</td> | -</td> </tr> </jadval> |
- | - |
Natija:
Qo'shimcha:
<tdbgcolor="red">-</td> |
Natija:
O'z-o'zini nazorat qilish uchun savollar:
while iborasining sintaksisi:
while (shart) ( //..bayonot bloki.. );
Misol: Muloqot oynasida ikkitadan gacha kuchlarni ko'rsatish 1000 (2, 4, 8...512). Alert() usulidan foydalaning
1 2 3 4 5 | var a = 1 ; esa (a< 1000 ) { a*= 2 ; alert(a) ; } |
var a = 1; esa (a< 1000){ a*=2; alert(a); }
a*=2 → birikma belgilash amali ishlatiladi: topshiriq bilan birlashtirilgan mahsulot, ya'ni. a = a*2 bilan bir xil
break va davom iboralari while siklida qanday ishlaydi?
Misol:
var a = 1 ; esa (a< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; } |
var a = 1; esa (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }
Ikkining kuchlari gacha ko'rsatiladi 128 inklyuziv va qiymat 64 o'tkazib yuboriladi. Bular. dialog oynalarida biz quyidagilarni ko'ramiz: 2 4 8 16 32 128
Js 3_13-topshiriq. Quyidagi kod parchasi qanday qiymatlarni chiqaradi?
var counter = 5; esa (taymer< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }
Js 3_14-topshiriq. Qurilish kodini yozing X darajaga qadar y while tsiklidan foydalanish. O'zgaruvchilar qiymatlarini so'rang va natijani alert() bilan ko'rsating.
Kod qo'shing:
1 2 3 4 5 6 7 8 9 | var x = ...; farq = ...; hisoblagich = 1; raqam = x; while (...) ( chislo= x* ...; counter= ...; ) alert(chislo) ; |
var x = ...; farq = ...; hisoblagich = 1; raqam=x; while (...)( chislo=x*...; counter=...; ) alert(chislo);
A Raqamning faktorialini topish uchun mo'ljallangan dasturdagi xatoni tuzating:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var counter = prompt("Raqam kiriting" ); var faktorial = 1 ; document.write( "Raqamning faktoriali:"+ hisoblagich + "!= "); do ( if (counter == 0 ) ( faktorial = 1 ; break ; ) faktorial = faktorial / counter; counter = counter + 1 ; ) while (counter > 0 ) ; hujjat.yozish (faktorial); |
var counter = prompt("Raqam kiriting"); var faktorial = 1; document.write("Raqam faktoriali: " + counter + "! = "); do ( if (hisoblagich == 0) ( faktorial = 1; break; ) faktorial = faktorial / hisoblagich; counter = counter + 1; ) while (hisoblagich > 0); hujjat.yozish(faktorial);
Js 3_16-topshiriq. Foydalanuvchi kiritish uchun dasturni o'zgartiring:
Foydalanuvchi haqiqatan ham foydalanuvchi nomini kiritmaguncha foydalanuvchi nomini so'rang (ya'ni, maydon haqiqatda to'ldirilsin va bekor qilish tugmasi bosilmaydi). Nom kiritilganda, keyin chiqaring "Salom ism!". hujjat.
Javascriptdagi xatolarni qanday topish mumkin?
Ba'zi hollarda sahifadagi kod noma'lum sabablarga ko'ra ishlamaydi. Xatoni qayerdan qidirish kerak? Bunday hollarda try..catch bayonotidan foydalanishingiz mumkin.
try..catch operatori kod qismini bajarishga harakat qiladi va agar kodda xatolik mavjud bo'lsa, u holda xatoni ekranda ko'rsatish mumkin.
Xato e.message obyektida saqlanadi.
Operatorning ishlashini misolda ko'rib chiqing:
Misol: dasturda xato bo'lgan operatorni yozing. Taxmin qilingan xato kodda xato borligini tekshiring: agar kodda xatolik bo'lsa, xabar bering "xato bilan ishlash: xato nomi". Noto'g'ri bayonotni tekshirgandan so'ng, kodda xatolik bor-yo'qligidan qat'i nazar, xabar bering "tugatish bosqichlari"
ogohlantirish ("oldin"); urinib ko'ring ( promt ("raqamni kiriting"); // xato bilan bayonot)
Ingliz tilidan sinab ko'ring. - "sinab ko'ring", shuning uchun biz try iborasini xato bo'lishi mumkin bo'lgan kod bo'lagi oldiga qo'yamiz (bizning holatlarimizda haqiqatan ham xatolik mavjud).
6 7 8 9 | tutmoq (e) ( ogohlantirish( "xato bilan ishlash:"+e.xabar); ) |
catch(e) ( alert("xato bilan ishlash: "+e.xabar); )
Agar haqiqatan ham xatolik bo'lsa, catch bayonoti (inglizchadan "tutish" dan) bu xatoni e ob'ektida saqlaydi. Kelajakda u dialog oynasida ko'rsatilishi mumkin - e.message .
nihoyat ( alert("tugatish amallari"); ) alert("keyin");
Agar hali ham xatolik mavjud bo'lsa, tarjimon, bizning misolimizda chiqarilgandan so'ng, catch blokini bajarishga o'tadi va nihoyat (inglizcha "tugatish", "nihoyat" dan), nima bo'lishidan qat'i nazar, har doim bajariladi. xatolik bormi yoki yo'qmi. Agar catch blokida xatolik bo'lsa ham.
Muhim: Qurilishdagi yakuniy blok ixtiyoriy.
Js 3_17-topshiriq. Yuqoridagi misolni quyidagi o'zgartirishlar bilan ishga tushiring:
Xulosa:
Dars quyidagi javascript tili operatorlari va konstruksiyalarini qamrab oldi:
Javascript shartli bayonotlari:
Loop bayonotlari:
Yakuniy vazifa Js 3_18.
Ikki kishi uchun o'yin yarating:
O'z-o'zini nazorat qilish uchun savollar: