Javascript iki koşul karşılanırsa, mesajın çıktısını alın. Koşullu operatörler. Koşullu if ifadesi
JavaScript, bir programın yürütme akışını etkileyen koşullu bir yapıya sahiptir. Eğer (İngilizcede) bir şey varsa, bir şey doğruysa, o zaman bir şeyi yapın, aksi halde (başka İngilizcede) başka bir şey yapın.
If ifadesi
İf ifadesinin nasıl çalıştığına bir göz atalım, basittir ve fazla açıklama gerektirmez.
If (koşul) (koşul doğruysa yürütülecek kod)
Çok basit: Eğer koşul doğruysa, (...) bloğundaki kod çalıştırılır.
Değişken basamak \u003d 4; eğer (digit \u003d\u003d 4) (document.write ("digit 4");)
Bazı garip kodlar yapılabilir:
Değişken basamak \u003d 4; if (true) (document.write ("Koşul doğrudur.");)
Başka ifade
Bir else ifadesi, bir if ifadesiyle birlikte kullanılabilir. "Aksi" anlamına gelir ve alternatif bir kod sağlar.
Değişken basamak \u003d 4; eğer (rakam
İf ve else ifadeleri için bu örnekte kaşlı ayraçların farklı yazılışlarına dikkat edin. Bu şekilde yazmak zorunlu değildir, her iki sözdizimi de doğrudur.
Else ifadesinin ardından yeni bir if ifadesi gelebilir. Bu, birden çok koşulu test edecektir.
Değişken basamak \u003d 4; eğer (rakam
JavaScript, PHP'de olduğu gibi (tek kelimeyle) bir elseif ifadesine sahip değildir.
Yalnızca bir ifade yürütmeniz gerekiyorsa, blok küme parantezleri (...) gereksizdir. Örneğimizde bunları yazmanıza gerek yok:
Değişken basamak \u003d 4; eğer (rakam
JavaScript'te yatıyor
İf (koşul) ifadesi, parantezli koşulu (ifade) değerlendirir ve booliana (doğru veya yanlış) dönüştürür.
JavaScript'te bir yalan olduğunu tekrarlayalım.
- Sayı 0 (sıfır).
- "" Satırı boş.
- Boolean false :)
- Değer boş.
- Değer tanımsız.
- NaN (Sayı Değil) değeri.
Diğer her şey doğrudur.
Birkaç olası hata:
If ("false") document.write ("Bu doğrudur.
"); if (false) document.write (" Bu doğrudur.
");
Burada, "false" dizesini (tırnak işaretleri içinde), boole türü false değerinden ayırmanız gerekir.
If ("") document.write ("Bu doğrudur.
"); else document.write (" Bu yanlıştır.
");
Burada "" dizesini (boşluk içinde) boş "" dizesinden ayırmanız gerekir. Bir dizenin içindeki boşluk onu boş değil, kapsayıcı bir karakter yapar. Tercüman için harf ya da boşluk önemli değil - sembol bir semboldür.
JavaScript'teki diğer koşul ifadeleri
- JavaScript anahtar yapımı.
- Operatör soru işareti
var a \u003d 10; var b \u003d (a\u003e 1)? 100: 200; uyarı (b);
Durum a\u003e 1 doğrudur, sonra değişken b değer atamak 100 aksi takdirde b değişkenine değer atanır 200 .
Js görevi 3_4. Kod tamamlama: 3 yerel değişken, var anahtar sözcüğü kullanılarak bildirilir. Aşağıdaki üçlü operatörün değerini max değişkenine atamak gerekir: eğer a b'den büyükse, o zaman a döndürürüz, aksi takdirde b döndürürüz.
Kod pasajı:
eğer (a * b< 6) { result = "Мало"; } else { result = "Много"; }
Kendini kontrol etmek için sorular:
- Üçlü operatörün sözdizimi nedir?
- Üçlü operatörün kaç argümanı vardır?
JavaScript'te operatörü değiştir - anahtar
Javascript switch deyimi, bir değişkeni birden çok değer için test etmek için kullanılır:
Sözdizimi:
switch (değişken veya ifade) (case seçeneği 1: // .. ifade bloğu .. break case seçeneği 2: // .. ifade bloğu .. break default: // .. ifade bloğu ..)
Bir değişkenin veya ifadenin değeri kontrol edilir: her birinde durum uygun bir değer olması durumunda değerlerden biri kontrol edilir, buna karşılık gelen bir veya daha fazla ifade bloğu durum.
Varsayılan hizmet kelimesi ile başlayan blok ihmal edilebilir. Tümünde listelenen değerlerden hiçbiri yoksa blok ifadeleri yürütülecektir. durum uygun değil.
Önemli: Break ifadesi, değişkenin her dikkate alınan değerinden sonra (her bir durum); kullanmazsanız, aşağıdaki tüm operatörler görüntülenecektir
Operatörle karşılaştırın EĞER:
var a \u003d 2; switch (a) (case 0: // if (a \u003d\u003d\u003d 0) case 1: // if (a \u003d\u003d\u003d 0) alert ("Sıfır veya bir"); // sonra çıktı ... break; case 2: // if (a \u003d\u003d\u003d 2) alert ("İki"); // sonra göster ... break; default: // else alert ("Çok"); // aksi halde göster ...)
Birden çok seçeneği nasıl gruplandırırım?
Aynı operatörleri çalıştırmak için birden fazla durum... Yukarıdaki örnekte olduğu gibi:
Durum 0: durum 1: uyarı ("Sıfır veya bir"); kırmak; ...
A \u003d 0 ve a \u003d 1 ile aynı ifade çalıştırılır: alert ("Sıfır veya bir");
Örnek 4: Kullanıcıdan bir renk girmesini isteyin. Girilen rengin İngilizce çevirisini görüntüleyin. Renk için "mavi" ve "mavi" aynı değeri döndür.
✍ Çözüm:
- HTML iskeleti ve etiketi ile bir web sayfası oluşturun senaryo.
- Bir değişkeni başlatın renk
- Yapıyı kullanarak bir değişkenin değerini kontrol edin switсh, her değer için çıktı - karşılık gelen çeviri:
- Çiçekler için "mavi" ve "mavi" gruplama yapın:
- Program tarafından sağlanmayan renkler için çıktıyı düzenleyin:
- Komut dosyasını bir tarayıcıda test edin.
var color \u003d istemi ("Ne renk?"); |
var color \u003d istem ("Ne renk?");
switch (renk) (case "red": alert ("red"); break; case "green": alert ("yeşil"); break; // ...
Değişken renk"kırmızı" değerine sahiptir, ardından çeviriyi kalıcı pencerede görüntüleyin - "kırmızı" ve yapımdan çıkın (ara;). Değişken renk "yeşil" değerine sahiptir, ardından çeviriyi kalıcı pencerede görüntüleyin - "yeşil" ve yapımdan çıkın (ara;).
// ... case "blue": case "blue": alert ("mavi"); kırmak; // ...
Değişken renkmavi veya değişken renk"mavi" değerine sahiptir, sonra çeviriyi kalıcı pencerede görüntüleyin - "mavi" ve yapımdan çıkın (ara;).
// ... varsayılan: uyarı ( "bu renk hakkında hiçbir bilgimiz yok")) // son anahtarı |
// ... varsayılan: alert ("y bu renk hakkında bilgimiz yok")) // son anahtarı
Js görevi 3_6. Aşağıdaki kod parçacığında hataları bulun ve düzeltin:
14 15 16 17 | var sayı \u003d bilgi istemi ( "1 veya 2 sayısını girin:"); switch (sayı) (case "1" (document.write ("One");); break; case "2" (document.write ("Two");); break; varsayılan (document.write ( "1 ve 2 dışında bir değer girdiniz") ; } ; } |
var sayı \u003d bilgi istemi ("1 veya 2 sayısını girin:"); switch (sayı) (case "1" (document.write ("One");); break; case "2" (document.write ("Two");); break; varsayılan (document.write (" 1 ve 2 dışında bir değer "););)
Js görevi 3_7. Aşağıdaki kod yürütüldüğünde ekranda ne görüntülenecek?:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var değer \u003d "2"; switch (değer) (case "1": case "2": case "3": document.write ("Hello"); break; case "4": case "5": document.write ("World"); varsayılan: document.write ("Hata");) |
var değer \u003d "2"; switch (değer) (case "1": case "2": case "3": document.write ("Hello"); break; case "4": case "5": document.write ("World"); varsayılan: document.write ("Hata");)
Js görevi 3_8. Kullanıcıdan bir sayı istemek - daldaki karga sayısı. Girilen numaraya (en fazla 10) bağlı olarak şu mesajı görüntüleyin: - Bir dalda oturmak 1 karga - Bir şubeye oturur 4 karga - Bir şubeye oturur 10 karga
- Girilen numaraya bağlı olarak, kelimenin sonu değişir "karga".
- Kontrol etmek için Switch javascript ifadesini kullanın.
- Bu sayfayı sonuçlar klasörüne kaydedin (daha fazla çalışma için faydalı olacaktır).
Kendini kontrol etmek için sorular:
- Yapının koşullu operatör olarak kullanılması ne zaman tavsiye edilir? değiştirmek?
- İfadedeki varsayılan blok nedir? değiştirmek?
- Yapım aşamasında break ifadesinin kullanılması zorunlu mu değiştirmek?
- Bir operatörde birden çok değer varyantı için gruplama nasıl gerçekleştirilir? değiştirmek?
JavaScript dilinin döngüsel operatörleri - için
Sözdizimi:
for (sayacın başlangıç \u200b\u200bdeğeri; koşul; sayacın artışı) (//.. ifade bloğu ..)
Önemli: Döngüsel eylemlerin kaç kez tekrarlanması gerektiği (döngüde kaç yineleme olduğu) önceden bilindiğinde, javascript'teki bir döngü kullanılır.
- Yineleme sayacının başlangıç \u200b\u200bdeğeri olarak bir atama ifadesi kullanılır: örneğin, i \u003d 0 - döngü sayacı sıfırdan başlar:
- Bir sayaç artışı olarak, sayacın artması gereken adım belirtilir: örneğin, döngünün her yinelemesine, artışın eşlik edeceğini belirtir. 1 :
- Döngü koşulu, sayacın bitiş değeridir: örneğin, i10 döngüyü durdurur:
for (var i \u003d 0; koşul; sayaç artışı) (//.. ifade bloğu ..)
for (var i \u003d 0; koşul; i ++) (//.. ifade bloğu ..)
için (var i \u003d 0; i<10; i++) { //..блок операторов.. }
JavaScript'te bir for döngüsü kullanma örneğine bakalım:
Örnek 5: Bir dizi sayı yazdırın 0 1 2 3 ... 9 , her rakam yeni bir satırda. 0 1 2 ... 8 9
✍ Çözüm:
- Bir sayı dizisi görüntülemek için, değerini değiştirmesi gereken for döngüsünün sayacını kullanacağız. 0 önce 9 sıraya göre.
- Dolayısıyla döngü sayacının başlangıç \u200b\u200bdeğeri değeri şuna ayarla 0 ; gibi döngü koşulları son değeri ayarlayın - ii \u003d 9; karşı adım olmalı 1 (i ++) çünkü dizinin üyeleri arasındaki fark bir:
- Komut dosyasını bir tarayıcıda test edin.
için (var i \u003d 0; i<10; i++)
{
document.write(i+"
");
}
Örnekte, döngü sayacının değerleri ekranda görüntülenir, çünkü sırasıyla i ++ sayacının artışı ekranda görünecektir. 0 1 2 3 ... 9
, her rakam yeni bir satırda (etiket
).
Js görevi 3_9. 1 önce 15 .
- Sayı dizisi olarak bir döngü sayacı kullanın için.
- Bir toplayıcı değişkeni için değişken tanımlayıcısını kullanın toplam.
Kod pasajı:
İçin (var i \u003d ...; ...; ...) (toplam \u003d toplam + ...;) ...
Döngü çıkış ifadeleri kırmak ve devam et javaScript'te. Şebeke çıkış
Break ifadesi, tüm döngü gövdesinin yürütülmesini kesintiye uğratır, örn. javaScript'teki döngüden kopar.
Continue deyimi geçerli döngü yinelemesinin yürütülmesini kesintiye uğratırken, aynı zamanda bir sonraki yinelemeden döngü yürütmeye devam eder.
Bir örnek kullanarak break ve continue ifadelerinin işleyişini ele alalım:
Misal: Kod parçacığının algoritmasını ayrıştırın. Ne gösterilecek?
Kod pasajı:
1 2 3 4 5 6 | için (var i \u003d 0; i<
10
;
i++
)
{
if
(i==
4
)
continue
;
document.write
(i+
" "); eğer (i \u003d\u003d 8) kırılır;) |
için (var i \u003d 0; i<10;i++)
{
if (i==4) continue;
document.write(i+"
"); eğer (i \u003d\u003d 8) kırılır;)
✍ Çözüm:
- Örneğin üçüncü satırı, basamağın neden olduğu bir koşulu içerir. 4 görüntülenmeyecek: operatör devam etmevcut olanı tamamlamadan döngünün bir sonraki yinelemesine geçecektir.
- 5 numaralı satırda döngüden çıkılır, ancak numara 8 çıktı ifadesi koşuldan önce geldiğinden (4. satırda) görüntülenecektir. Tanışmış kırmak, yorumlayıcı döngüyü sonlandıracaktır.
- Yani ekran şunu gösterecektir: 0 1 2 3 5 6 7 8 - yeni bir satırdaki her rakam.
Js görevi 3_10. Tüm tam sayıların toplamının çıktısını alın 1 önce 15 , toplam sayı dışında 5 ve 7 .
Çıkış ifadesi
Javasctipt dili, program kodundan (çıkış operatörü) bir çıkış operatörü sağlar.
Çoğu zaman operatör, kullanıcı giriş hatasını ortadan kaldırmak için kullanılır.
Bir örnek ele alalım:
Örnek 6: Kullanıcıdan bir numara girmesini isteyin. Numara girilmemişse, mesajı görüntüleyin "Bir numaraya ihtiyacın var!" ve programı durdurun.
✍ Çözüm:
- Bir değişkeni başlatın numara kullanıcı tarafından modala girilen değer:
- Bir dizeyi tam sayıya dönüştürmek için parseInt işlevini kullanarak, girilen değerin sayı olup olmadığını kontrol edin:
- Değişkenin değerini kontrol edin numara isNaN işlevini kullanarak:
- Tarafından "yalanlar" kuralı değişkenin değerini kontrol etmek için düzenleyin x... Değer sayısal değilse, ilgili bir not yazdırın ve programdan çıkın:
- Programa devam etmek için (girilen değer bir sayı ise), aşağıdaki pencereyi bir giriş istemiyle görüntüleyin:
- Komut dosyasını bir tarayıcıda test edin.
var sayı \u003d bilgi istemi ("Bir numara girin");
sayı \u003d parseInt (sayı); // NaN döndürür - sayı değil
Sayı girilmezse, işlev NaN değerini döndürür (İngilizceden. sayı değil - sayı değil).
x \u003d isNaN (sayı); // değer sayısal değilse doğru döndürür
IsNaN işlevi değer döndürür doğru değişkenin bir sayı olmaması durumunda
if (x) (alert ("Bir numaraya ihtiyacın var!"); çıkış; // programdan çık)
alert ("İkinci sayıyı girin"); // sayı olmayan bir girerseniz, ifade çalıştırılmayacaktır
Kendini kontrol etmek için sorular:
- Üç döngü parametresini listeleyin için ve amaçlarını açıklayın.
- Hangi operatörler döngüden çıkmak ve onu durdurmak içindir? Kullanımlarına ilişkin örnekler verin.
- Operatör ne için çıkış?
Bir FOR'da birden fazla sayaç olması mümkün müdür?
For döngüsü ile ilginç bir çalışma yapmak mümkündür. bir döngüde aynı anda iki sayaç.
Bir örnek ele alalım:
Örnek 7: Komut dosyasını kullanarak, aşağıdaki değişken-değer çiftlerini üç satırda yazdırın: i \u003d 0 j \u003d 2 i \u003d 1 j \u003d 3 i \u003d 2 j \u003d 4
✍ Çözüm:
- For döngüsünde, iki sayacı düzenleyin: diziyi çıkarmak için sayaç i 0 1 2 , diziyi çıkarmak için j sayacı 2 3 4 :
- Her satırdaki çıktı için etiketini kullanın
:
1 2 3 | için (i \u003d 0, j \u003d 2; i< 10 , j< 5 ; i++, j++ ) { } |
için (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++) { }
For döngüsünün üç parametresinin her biri artık listelenen iki değere sahiptir virgülle ayrılmış (örneğin, iki değerli ilk parametre: i \u003d 0, j \u003d 2). Parametrelerin kendileri listelenir noktalı virgülle ayrılmış(;).
1 2 3 4 | için (i \u003d 0, j \u003d 2; i<
10
,
j<
5
;
i++,
j++
)
{
document.write
(" i \u003d ", i," j \u003d ", j);) |
için (i \u003d 0, j \u003d 2; i<10, j<5; i++, j++)
{
document.write("
i \u003d ", i," j \u003d ", j);)
Anında sayfa oluşturma: nasıl?
Bir sonraki görevi yapmadan önce bir örnek düşünün dinamik olarak html sayfası oluşturma javascript kullanarak.
Örnek 8:
- Kullanıcı tarafından girilen verilere bağlı olarak web sayfasında dinamik olarak madde işaretli ve numaralı listeler oluşturmak gerekir: kullanıcıdan girmesini isteyin liste görünümü (numaralandırılmış (1 numara) veya etiketli (2 numara)) ve sonra liste öğesi sayısı.
- Yanıta bağlı olarak, gerekli sayıda öğeyle birlikte madde işaretli veya numaralı bir listenin etiketlerini görüntüleyin.
- Varolmayan bir liste türü girilirse, mesajı görüntüleyin "Lütfen doğru türü girin!" ve programdan çıkın ().
Etiketleri hatırlayalım:
numaralı liste etiketleri:
<ol\u003e <li\u003e li > <li\u003e li > <li\u003e li > </ ol\u003e |
madde işaretli liste etiketleri:
var listType \u003d prompt ("Madde işaretli liste için" 1 ", numaralı liste için" 2 "girin");
- , işaretli (sayı 2) - etiket
- ... Farklı bir değer girdiyseniz, bir not yazdırın ve programı sonlandırın:
- Bir değişkeni başlatın kolvo kullanıcı tarafından modala girilen değer:
- Bir dize değerini sayısal bir değere dönüştürmek için parseInt işlevini kullanın:
- Listeler ilgili etiketlerle kapatıldığından, listenin türüne bağlı olarak kapanış etiketlerini yazdırın:
- ") else (alert (" Doğru türü girin "); çıkış;)
var kolvo \u003d bilgi istemi ("Öğe sayısını girin");
için (var i \u003d 1; i<=kolvo; i++) document.write("");
eğer (listType \u003d\u003d "1") document.write ("") else if (listType \u003d\u003d" 2 ") document.write ("" ) ; |
eğer (listType \u003d\u003d "1") document.write ("
Js görevi 3_11.
Etiketleri gösteren bir komut dosyası yazın girişgirilen rakama bağlı olarak farklı tiplerde (kontroller):
1
- metin alanı,
2
- buton,
3
- radyo(değiştirmek).
Görüntülenen etiket sayısı da istenmelidir.
Etiketleri hatırlayalım:
1 - metin alanı için: 2 - düğme için: 3 - radyo için:
Çıktı örneği:
Js görevi 3_12. Döngüler için javascript kullanarak 9x9 dama tahtası çizin. "Çizim" panosu, tablo için html etiketleri olmalıdır:
Etiketleri hatırlayalım:
<tablo sınırı \u003d "1" genişlik \u003d "% 30"\u003e <tr\u003e <td\u003e-</ td\u003e | -</ td\u003e </ tr\u003e </ tablo\u003e |
- | - |
- 9 çizgi çizmek için, bir sayaç i ile harici bir for döngüsü düzenlemeniz gerekir.
- Her satıra 9 hücre çizmek için, j sayacına sahip bir iç (iç içe) döngü düzenlemeniz gerekir.
- Hücre ve satır etiketlerini oluşturmak için document.write yöntemini kullanın.
Sonuç:
Bunlara ek olarak:
- Döngü sayaçlarını (i ve j) kullanarak çarpım tablosunu tablo hücrelerine yazdırın.
- İlk satırı ve ilk sütunu kırmızı bir arka planla görüntüleyin (tablo hücresinin bgcolor özelliği):
<td bgcolor \u003d "kırmızı"\u003e-</ td\u003e -
Sonuç:
Kendini kontrol etmek için sorular:
- Dinamik sayfa oluşturmanın ne anlama geldiğini açıklayın?
- Dinamik sayfa oluşturma için en sık kullanılan dil yapısı nedir?
JavaScript dilinin döngüsel ifadeleri - While
While ifadesinin sözdizimi şöyledir:
while (koşul) (//.. ifadelerin bloğu ..);
Misal: İkiye kadar gücü göster 1000 (2, 4, 8 ... 512). Alert () yöntemini kullanın
✍ Çözüm:
- Komut dosyasının listesi:
- Sonucu bir tarayıcıda test edin.
1 2 3 4 5 | var a \u003d 1; while (a< 1000 ) { a*= 2 ; alert(a) ; } |
var a \u003d 1; while (a< 1000){ a*=2; alert(a); }
a * \u003d 2 → bileşik atama işlemi kullanılır: atama ile birleştirilen ürün, yani a \u003d a * 2 ile aynı
Break ve continue ifadeleri bir süre döngüsünde nasıl çalışır?
Misal:
var a \u003d 1; while (a< 1000 ) { a*= 2 ; if (a== 64 ) continue ; if (a== 256 ) break ; alert(a) ; } |
var a \u003d 1; while (a< 1000){ a*=2; if (a==64) continue; if (a==256) break; alert(a); }
İkinin yetkileri, 128 kapsayıcı ve değer 64 atlanacak. Şunlar. iletişim kutularında şunları göreceğiz: 2 4 8 16 32 128
Js görevi 3_13. Aşağıdaki kod parçacığı hangi değerleri gösterecek?
var counter \u003d 5; while (sayaç< 10) { counter++; document.write("Counter " + counter); break; document.write("Эта строка не выполнится."); }
Js görevi 3_14. Montaj kodunu yaz x dereceye kadar ywhile döngüsü kullanarak. Değişken değerlerini sorgulayın ve alert () kullanarak sonucu çıkarın.
Kodu tamamlayın:
1 2 3 4 5 6 7 8 9 | var x \u003d ...; var y \u003d ...; sayaç \u003d 1; chislo \u003d x; while (...) (chislo \u003d x * ...; sayaç \u003d ...;) alert (chislo); |
var x \u003d ...; var y \u003d ...; sayaç \u003d 1; chislo \u003d x; while (...) (chislo \u003d x * ...; sayaç \u003d ...;) alert (chislo);
A Bir sayının faktöriyelini bulmak için tasarlanmış programdaki hatayı düzeltin:
1 2 3 4 5 6 7 8 9 10 11 12 13 | var counter \u003d istemi ("Bir numara girin"); var factorial \u003d 1; document.write ( "Sayı faktöriyeli:" + sayaç + "! \u003d"); do (if (counter \u003d\u003d 0) (faktoriyel \u003d 1; break;) factorial \u003d factorial / counter; counter \u003d counter + 1;) while (counter\u003e 0); document.write (faktöryel); |
var counter \u003d istemi ("Bir numara girin"); var factorial \u003d 1; document.write ("Sayı faktöriyeli:" + sayaç + "! \u003d"); do (if (counter \u003d\u003d 0) (faktoriyel \u003d 1; break;) factorial \u003d factorial / counter; counter \u003d counter + 1;) while (counter\u003e 0); document.write (faktöryel);
Js görevi 3_16. Programı kullanıcı girişi için değiştirin:
Kullanıcı gerçekten bir ad girene kadar bir kullanıcı adı sor (yani alan gerçekten doldurulur ve iptal tuşuna basılmaz). Ad girildiğinde çıktı "Merhaba isim!"... belge.
JavaScript'te hatalar nasıl bulunur?
Bazı durumlarda, sayfadaki kod herhangi bir nedenle çalışmıyor. Hatayı nereye bakmalı? Bu tür durumlarda, try..catch deyimini kullanabilirsiniz.
Try..catch deyimi bir kod parçasını çalıştırmaya çalışır ve kodda bir hata varsa, ekranda bir hata görüntülemek mümkündür.
Hata, e.message nesnesinde saklanır.
Operatörün çalışmasını bir örnek kullanarak ele alalım:
Misal: programda hata içeren bir ifade yazın. Şüpheli hatalı kodda bir hata olup olmadığını kontrol edin: kodda bir hata varsa, bir mesaj görüntüleyin "hata işleme: hata adı"... Hatalı operatörü kontrol ettikten sonra, kodda bir hata olup olmadığına bakılmaksızın, mesajı yayınlayın "işlemlerin tamamlanması"
✍ Çözüm:
- Hatalı bir mesaj olarak, bir hata ile yazılmış istem () yöntemini kullanacağız - promt ()... Hata mesajını bir try bloğuna ekleyin:
- Hata mesajı bir catch bloğuna yerleştirilmelidir:
- Kodda bir hata olup olmadığına bakılmaksızın görüntülenmesi gereken son mesajı bir final bloğuna yerleştirin:
uyarı ("önce"); try (promt ("sayı girin"); // hatalı operatör)
İngilizceden deneyin. - "try", bu nedenle, bir hata içerebilecek bir kod parçasının önüne bir try ifadesi koyarız (bizim durumumuzda gerçekten bir hata vardır).
6 7 8 9 | catch (e) (uyarı ( "Hata yönetimi:"+ e-mesaj); ) |
catch (e) (alert ("hata işleme:" + e.message);)
Gerçekten bir hata varsa, catch deyimi bu hatayı e nesnesinde saklar. Daha sonra e.message iletişim kutusunda görüntülenebilir.
nihayet (alert ("bitirme eylemleri");) alert ("sonra");
Bir hata varsa, yorumlayıcı, örneğimizde gösterdikten sonra catch bloğunu yürütmeye devam edecek ve son olarak (İngilizce'den "tamamlama", "nihayet"), bir hata olup olmadığına bakılmaksızın her zaman yürütülecektir. Catch bloğunda bir hata olsa bile.
Önemli: Nihai blok yapımda isteğe bağlıdır.
Js görevi 3_17. Aşağıdaki değişiklikleri yaparak yukarıdaki örneği izleyin:
Özet:
Ders aşağıdaki javascript operatörlerini ve yapılarını kapsıyordu:
Javascript koşullu ifadeler:
Döngü operatörleri:
Son görev Js 3_18.
İki kişilik bir oyun oluşturun:
- Program ilk oyuncudan bir sayı girmesini ister. 1 önce 100 (ikinci oyuncu girilen sayıyı görmez). Ardından ikinci oyuncudan girilen sayıyı tahmin etmesi istenir. Mesaj yanıt olarak görüntülenir "az" veya "bir çok" girilen cevaba bağlı olarak. Oyuncu doğru tahmin ederse, tebrikler görüntülenir. Yanlış tahmin ederse oyun devam eder (sayı gerçekten tahmin edilene kadar).
- Deneme sayısını hesaplayın ve sayı tahmin edildiğinde sonucu döndürün.
Kendini kontrol etmek için sorular:
- For In döngüsünün kullanılması ne zaman önerilir? Kullanımının bir örneği nedir?
- Try..catch deyiminin amacı nedir?
- Try..catch deyiminin her bloğunun amacını açıklayın.
Bu etkileşimli örneğin kaynağı bir GitHub deposunda saklanır. Etkileşimli örnekler projesine katkıda bulunmak isterseniz, lütfen https://github.com/mdn/interactive-examples klonlayın ve bize bir istek gönderin.
Sözdizimi
if (koşul) ifade1 koşul Doğru veya yanlış olarak kabul edilen bir ifade. ifade1 Koşul doğruysa yürütülen ifade. İç içe geçmiş if ifadeleri de dahil olmak üzere herhangi bir ifade olabilir. Birden çok deyimi yürütmek için, bu ifadeleri gruplamak için bir blok deyimi (...)) kullanın. Hiçbir ifade yürütmek için boş bir ifade kullanın. ifade2 Koşul yanlışsa ve else cümlesi varsa çalıştırılan ifade. Blok ifadeleri ve iç içe geçmiş if ifadeleri dahil herhangi bir ifade olabilir.Açıklama
Birden fazla if ... else ifadesi, başka bir if cümlesi oluşturmak için yuvalanabilir. JavaScript'te elseif (tek kelimeyle) anahtar kelimesinin olmadığını unutmayın.
If (koşul1) ifade1 else if (koşul2) ifade2 else if (koşul3) ifade3 ... else deyimiN
Bunun nasıl çalıştığını görmek için, yuvalama düzgün şekilde girintilendirilmiş olsaydı şöyle görünürdü:
If (koşul1) ifade1 else if (koşul2) ifade2 else if (koşul3) ...
Bir cümle içinde birden çok ifade yürütmek için, bu ifadeleri gruplandırmak için bir blok ifadesi ((...)) kullanın. Genel olarak, özellikle iç içe geçmiş if ifadelerini içeren kodda her zaman blok ifadeleri kullanmak iyi bir uygulamadır:
If (koşul) (ifadeler1) else (ifadeler2)
Doğru ve yanlış ilkel Boole değerlerini, Boolean nesnesinin doğruluğu veya yanlışlığı ile karıştırmayın. False, undefined, , 0, -0, NaN veya boş dize ("") olmayan herhangi bir değer ve değeri false olan bir Boolean nesnesi de dahil olmak üzere herhangi bir nesne, koşul olarak kullanıldığında doğru kabul edilir. Örneğin:
Var b \u003d new Boolean (false); eğer (b) // bu koşul doğruysa
Örnekler
İf ... else kullanma
if (cipher_char \u003d\u003d\u003d from_char) (sonuç \u003d sonuç + to_char; x ++;) else (sonuç \u003d sonuç + temiz_şar;)Eğer kullanıyorsa
JavaScript'te elseif sözdizimi olmadığını unutmayın. Ancak, else ile şu durumlar arasında bir boşluk bırakarak yazabilirsiniz:
Eğer (x\u003e 50) (/ * doğru olanı yap * /) else if (x\u003e 5) (/ * doğru olanı yap * /) else (/ * doğru olanı yap * /)
Koşullu ifade içinde atama
Koşullu bir ifadede basit atamaların kullanılmaması önerilir, çünkü koda göz atıldığında atama eşitlikle karıştırılabilir. Örneğin, aşağıdaki kodu kullanmayın:
Eğer (x \u003d y) (/ * doğru olanı yap * /)
Koşullu ifadede bir atama kullanmanız gerekiyorsa, yaygın bir uygulama, ödevin etrafına ek parantezler koymaktır. Örneğin:
Eğer ((x \u003d y)) (/ * doğru olanı yap * /)
Teknik Özellikler
Şartname | Durum | Yorum Yap |
---|---|---|
ECMAScript Son Taslak (ECMA-262) |
Taslak | |
ECMAScript 2015 (6. Baskı, ECMA-262) Bu şartnamedeki "if ifadesi" nin tanımı. |
Standart | |
ECMAScript 5.1 (ECMA-262) Bu şartnamedeki "if ifadesi" nin tanımı. |
Standart | |
ECMAScript 3. Baskı (ECMA-262) Bu şartnamedeki "if ifadesi" nin tanımı. |
Standart | |
ECMAScript 1. Baskı (ECMA-262) Bu şartnamedeki "if ifadesi" nin tanımı. |
Standart | İlk tanım |
Tarayıcı Uyumluluğu
Bu sayfadaki uyumluluk tablosu, yapılandırılmış verilerden oluşturulmuştur. Verilere katkıda bulunmak isterseniz, lütfen https://github.com/mdn/browser-compat-data sayfasına bakın ve bize bir çekme isteği gönderin.
GitHub'da uyumluluk verilerini güncelleyin
Masaüstü Bilgisayar | Cep Telefonu | Sunucu | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Krom | Kenar | Firefox | Internet Explorer | Opera | Safari | Android web görünümü | Android için Chrome | Android için Firefox | Android için Opera | İOS'ta Safari | Samsung İnternet | Node.js | |
eğer ... değilse | Chrome Tam desteği 1 | Edge Tam destek 12 | Firefox Tam destek 1 | IE Tam destek 3 | Opera Tam destek Evet | Safari Tam destek Evet | WebView Android Tam destek 1 | Chrome Android Tam desteği 18 | Firefox Android Tam destek 4 | Opera Android Tam destek Evet | Safari iOS Tam destek Evet | Samsung Internet Android Tam destek 1.0 | nodejs Tam destek Evet |
Bu örnekte, önce var anahtar sözcüğünü kullanarak dört değişken bildiriyoruz ve hemen bunlara sayısal değerler atıyoruz. Ardından, artırma ve azaltma operatörlerini kullanarak sayıların değerlerini değiştiririz. Bilgi, işlev kullanılarak görüntülenir Eko ("" makalesine bakın). Nesnenin adını bir kez daha yazmamak için yapıyı kullandım ile ().
Mantıksal operatörler
Mantıksal operatörler koşulu kontrol ederken kullanılır, tekrar etmemek için bir kısaltma yapacağım: sol operand L.O. ve sağ operand P.O.
- && - Mantıksal "VE"
- || - "VEYA"
- ! - "DEĞİL"
- \u003e - L.O. daha fazla P.O.
- \u003e \u003d - L.O. P.O.'dan büyük veya ona eşittir.
- < - Л.О. меньше П.О.
- <= - Л.О. меньше или равен П.О.
- \u003d\u003d - L.O. P.O.'ya eşit
- ! \u003d - L.O. P.O.'ya eşit değildir.
- | \u003d - L.O. kendisine eşit VEYA P.O.
- & \u003d - L.O. kendime eşit ve P.O.
- ^ \u003d - ÖZEL VEYA
Şimdi aşağıdaki betiği düşünün:
//***************************************** // mantıksal işlemler // logik_if_else.js //***************************************** var a \u003d 10, b \u003d 100, WshShell, başlık, msg1, msg2, msg3, msg4, vbInformation \u003d 64; // WScript.Shell sınıfının bir örneğini oluşturun WshShell \u003d WScript.CreateObject ("WScript.Shell"); başlık \u003d "IF ELSE JS Koşullu İfadesi ile Çalışma"; ile (WshShell) (if (a\u003e \u003d 5 && a<= 100 ) //истина msg1 = "TRUE" ; else msg1 = "FALSE" ; Popup (msg1, 5 , title, vbInformation) ; if (a>\u003d 5 || b \u003d\u003d 100) // doğru msg2 \u003d "DOĞRU"; başka msg2 \u003d "YANLIŞ"; Popup (msg2, 5, title, vbInformation); // koşullu ifade js if else eğer (! a) // yanlış msg3 \u003d "DOĞRU"; başka msg3 \u003d "YANLIŞ"; Popup (msg3, 5, title, vbInformation); eğer (a & \u003d 100) // yanlış msg4 \u003d "DOĞRU"; başka msg4 \u003d "YANLIŞ"; Popup (msg4, 5, title, vbInformation); ) |
Önceki senaryoda olduğu gibi, burada inşaatı kullandım ile program kodunu kısaltmak için. Ancak, bilgileri görüntülemek için işlevi kullandık Aniden belirmek ("" makalesine bakın). Sonuç olarak, iletişim kutuları birkaç saniye sonra otomatik olarak kapanacaktır. Lütfen bu örnekte küme parantezi kullanmadığımızı unutmayın. js if koşullu ifadede, yalnızca birden fazla kod satırı çalıştırmanız gerektiğinde, ancak birkaç satırda geçerlidir.
Son olarak, ikinci dereceden denklem çözme gibi pratik bir örneğe bakalım:
// İkinci dereceden bir denklem çözme // uravnenije_if_else.js // *********************************************************** var a, b, c, d, x, x1, x2; // Değişkenleri bildirin a \u003d - 2; b \u003d 6; c \u003d 20; // Ayrımcı aranıyor d \u003d Matematik .pow (b, 2) - 4 * a * c; eğer (d \u003d\u003d 0) (x \u003d b / (2 * a); msg \u003d "Denklemin bir çözümü var, x tam olarak" + x) else (if (d\u003e 0) (x1 \u003d (- b + Math .sqrt (d)) / (2 * a); x2 \u003d (- b- Math .sqrt (d)) / (2 * a) ; msg \u003d "Denklemin iki çözümü vardır \\ n x1 tam olarak" + x1 + " \\ n x2 tam olarak " + x2; // aksi takdirde koşullu ifade js ) else msg \u003d "Çözüm yok"; ) WScript.Echo (msg); |
Günlük yaşamda, bazı koşullara bağlı olarak genellikle bir tür karar vermek gerekir. Mesela hafta sonu hava sıcaksa denize gideceğiz, yoksa hava bulutluysa evde oturacağız.
Programlamada bu da çok yaygındır. Bunun için var iki koşullu ifade if-else ve switch-case'dir... Bu yazıda size if-else operatöründen ve bir sonraki makalede switch-case'den bahsedeceğim.
If-else koşullu ifade sözdizimi takip etme:
Koşul doğruysa, if bloğundan kod yürütülür, aksi takdirde koşul yanlışsa, else bloğundan kod yürütülür.
Daha iyi anlamak için bu kadar basit bir örnek verelim, belli bir miktar paramız var ve bir araba almak istiyoruz ve burada hemen böyle bir durum ortaya çıkıyor, eğer yeterli paramız varsa o zaman bu arabayı alabiliriz, yoksa alamayız.
Var para \u003d 35000; // Diyelim ki 35.000 Euro'muz var // Almak istediğimiz arabanın maliyeti 50.000 Euro. Ve (para\u003e 50000) (document.write ("Araba alabiliriz");) else (document.write ("Araba almak için yeterli para yok");)
Belgeyi kaydediyoruz, tarayıcıda açıyoruz ve "Araba satın almak için yeterli para yok" sayfasında aşağıdaki mesajın görüntülendiğini görüyoruz. 50.000 Euro'dan fazla paramız olsaydı, if bloğundaki kod çalıştırılırdı. Tam olarak 50.000 avroya sahip olsaydık, o zaman bir araba da alamazdık, çünkü 50.000, 50.000'den fazla değildir. Bu durumda koşulun doğru olması için, büyük veya eşittir işareti (\u003e \u003d) yazmanız gerekir. ...
Yorum Yap! Mantıksal işlem eşittir iki eşittir işaretiyle yazılır (\u003d\u003d)... Ayrıca şuna eşit veya daha küçük bir mantıksal işlem vardır (
küme parantezi kullanmak
Yalnızca bir operatör varsa, küme parantezleri isteğe bağlıdır, blokta birden fazla operatör varsa, küme parantezleri gereklidir.
Yukarıdaki örnek, her iki blok da yalnızca bir operatör içerdiğinden, kaşlı ayraçlar olmadan iyi çalışacaktır.
Herhangi bir mantıksal işlem if dosyasının içine yazılabilir.basit veya karmaşık olup olmadıkları. AND (&&) ve OR (||) operatörlerini de kullanabilirsiniz.
Yorum Yap! Else bloğunun varlığı isteğe bağlıdır.
Örneğin, a eşittir b ve c eşitse, o zaman karşılık gelen mesajı görüntüleriz, aksi takdirde başka blok yoksa, o zaman bir sonraki satıra geçeriz.
Var a \u003d 4, b \u003d 4, c \u003d 8, d \u003d 8; eğer ((a \u003d\u003d b) && (c \u003d\u003d d)) document.write ("a eşittir b VE c eşittir d"); document.write ("Sonraki kod satırı");
If - else if - else ifadesidir
İf bloğundan sonra, bir veya daha fazla başka bloklar takip edebilir ve sonunda başka bir blok vardır. Bu, birden fazla koşul kullanmanız gerektiğinde yararlıdır.
Daha iyi bir anlayış için günlük yaşamdan bir örnek alalım. Örneğin, belirli sayıda satış noktamız var. Odada sadece bir prizimiz varsa, o zaman sadece bir cihazı bağlayabiliriz, iki priz varsa, o zaman iki cihazı bağlayabiliriz ve daha fazlası varsa, o zaman tüm cihazları evden elektrik ağına bağlayabiliriz.
Şimdi programlamaya geçelim.
Var soket \u003d 2; // Evdeki soket sayısı if (socket \u003d\u003d 1) document.write ("
Sadece bir cihaz bağlayabiliriz
"); else if (soket \u003d\u003d 2) (document.write ("Sadece iki cihaz bağlayabiliriz
"); document.write ("Örneğin TV ve dizüstü bilgisayar
");) else (document.write ("Tüm cihazları evden elektrik ağına bağlayabiliriz
"); }Soket değişkeninin değerine bağlı olarak, bu veya bu kod bloğu ateşlenecektir. Muhtemelen zaten anladığınız gibi, soket 1'e eşitse, o zaman ilk kod bloğu çalışacaktır. Soket 2 ise, ikinci kod bloğu ateşlenecek ve soketin başka bir değeri varsa (negatif bir sayı olsa bile) üçüncü kod bloğu ateşlenecektir.
Aksi takdirde stenografi
Belirli bir koşula bağlı olarak bir değişkenin belirli bir değeri alabildiği durumda kısaltılmış bir gösterim kullanılabilir.
Örneğin, a değişkeninin değeri b değişkeninin değerinden büyükse, x değişkenine şu mesajı yazıyoruz, "a değişkeni b değişkeninden daha büyük", aksi takdirde "a değişkeni b değişkeninden küçüktür" yazıyoruz.
Var a \u003d 50, b \u003d 100, x; x \u003d (a\u003e b)? "
Değişken a daha değişken b
" : "Değişken a az değişken b
"; // Ortaya çıkan sonucu yazdırın document.write (x);Bu makalede size anlatmak istediğim tek şey bu. İf-else koşullu operatörü her komut dosyasında olduğundan daha fazla kullanılır, bu yüzden onu bilmek ve anlamak çok önemlidir. Bir sonraki makalede size bir tane daha koşullu switch-case deyiminden bahsedeceğim.