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:

  1. Üçlü operatörün sözdizimi nedir?
  2. Üç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
  • var color \u003d istemi ("Ne renk?");

    var color \u003d istem ("Ne 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:
  • 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;).

  • Çiçekler için "mavi" ve "mavi" gruplama yapın:
  • // ... 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;).

  • Program tarafından sağlanmayan renkler için çıktıyı düzenleyin:
  • // ... 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ı

  • Komut dosyasını bir tarayıcıda test edin.

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

  1. Girilen numaraya bağlı olarak, kelimenin sonu değişir "karga".
  2. Kontrol etmek için Switch javascript ifadesini kullanın.
  3. Bu sayfayı sonuçlar klasörüne kaydedin (daha fazla çalışma için faydalı olacaktır).


Kendini kontrol etmek için sorular:

  1. Yapının koşullu operatör olarak kullanılması ne zaman tavsiye edilir? değiştirmek?
  2. İfadedeki varsayılan blok nedir? değiştirmek?
  3. Yapım aşamasında break ifadesinin kullanılması zorunlu mu değiştirmek?
  4. 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:
  • for (var i \u003d 0; koşul; sayaç artışı) (//.. ifade bloğu ..)

  • 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 :
  • for (var i \u003d 0; koşul; i ++) (//.. ifade bloğu ..)

  • Döngü koşulu, sayacın bitiş değeridir: örneğin, i10 döngüyü durdurur:
  • 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:
  • 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
    ).

  • Komut dosyasını bir tarayıcıda test edin.

Js görevi 3_9. 1 önce 15 .

  1. Sayı dizisi olarak bir döngü sayacı kullanın için.
  2. 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:
  • var sayı \u003d bilgi istemi ("Bir numara girin");

  • Bir dizeyi tam sayıya dönüştürmek için parseInt işlevini kullanarak, girilen değerin sayı olup olmadığını kontrol edin:
  • 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).

  • Değişkenin değerini kontrol edin numara isNaN işlevini kullanarak:
  • 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

  • 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:
  • if (x) (alert ("Bir numaraya ihtiyacın var!"); çıkış; // programdan çık)

  • Programa devam etmek için (girilen değer bir sayı ise), aşağıdaki pencereyi bir giriş istemiyle görüntüleyin:
  • alert ("İkinci sayıyı girin"); // sayı olmayan bir girerseniz, ifade çalıştırılmayacaktır

  • Komut dosyasını bir tarayıcıda test edin.

Kendini kontrol etmek için sorular:

  1. Üç döngü parametresini listeleyin için ve amaçlarını açıklayın.
  2. Hangi operatörler döngüden çıkmak ve onu durdurmak içindir? Kullanımlarına ilişkin örnekler verin.
  3. 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 :
  • 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ış(;).

  • Her satırdaki çıktı için etiketini kullanın
    :
  • 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\u003e <li\u003e </ ol\u003e

madde işaretli liste etiketleri:

var listType \u003d prompt ("Madde işaretli liste için" 1 ", numaralı liste için" 2 "girin");

  • Girilen değeri kontrol edin: numaralı bir liste için (1 numara) etiketi çıkarın
      , işaretli (sayı 2) - etiket
        ... Farklı bir değer girdiyseniz, bir not yazdırın ve programı sonlandırın:

            ") else (alert (" Doğru türü girin "); çıkış;)

          • Bir değişkeni başlatın kolvo kullanıcı tarafından modala girilen değer:
          • var kolvo \u003d bilgi istemi ("Öğe sayısını girin");

          • Bir dize değerini sayısal bir değere dönüştürmek için parseInt işlevini kullanın:
          • için (var i \u003d 1; i<=kolvo; i++) document.write("");

          • Listeler ilgili etiketlerle kapatıldığından, listenin türüne bağlı olarak kapanış etiketlerini yazdırın:
          • eğer (listType \u003d\u003d "1") document.write ("") else if (listType \u003d\u003d" 2 ") document.write ("" ) ;

            eğer (listType \u003d\u003d "1") document.write ("

        ") else if (listType \u003d\u003d" 2 ") document.write ("
      ");

    1. Komut dosyasını bir tarayıcıda test edin.
    2. 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:

      1. Döngü sayaçlarını (i ve j) kullanarak çarpım tablosunu tablo hücrelerine yazdırın.
      2. İ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:

      1. Dinamik sayfa oluşturmanın ne anlama geldiğini açıklayın?
      2. 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:
      • 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ı

      • Sonucu bir tarayıcıda test edin.

      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:
      • 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).

      • Hata mesajı bir catch bloğuna yerleştirilmelidir:
      • 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.

      • Kodda bir hata olup olmadığına bakılmaksızın görüntülenmesi gereken son mesajı bir final bloğuna yerleştirin:
      • 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:

    3. Nihayet bloğunu kaldırın ve kodun çalışmasını izleyin.
    4. Hatalı operatörü hatasız bir operatörle değiştirin ve sonucun ne olacağını görün.
    5. Özet:

      Ders aşağıdaki javascript operatörlerini ve yapılarını kapsıyordu:

      Javascript koşullu ifadeler:

    6. If ifadesi
    7. Koşullu atama (üçlü operatör)
    8. Anahtar deyimi
    9. Döngü operatörleri:

    10. Döngü için
    11. Döngü sırasında
    12. Do ... while döngüsü
    13. For ... in loop
    14. Son görev Js 3_18.
      İki kişilik bir oyun oluşturun:

      1. 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).
      2. Deneme sayısını hesaplayın ve sayı tahmin edildiğinde sonucu döndürün.


      Kendini kontrol etmek için sorular:

      1. For In döngüsünün kullanılması ne zaman önerilir? Kullanımının bir örneği nedir?
      2. Try..catch deyiminin amacı nedir?
      3. 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ü BilgisayarCep TelefonuSunucu
      KromKenarFirefoxInternet ExplorerOperaSafariAndroid web görünümüAndroid için ChromeAndroid için FirefoxAndroid için OperaİOS'ta SafariSamsung İnternetNode.js
      eğer ... değilseChrome Tam desteği 1Edge Tam destek 12Firefox Tam destek 1IE Tam destek 3Opera Tam destek EvetSafari Tam destek EvetWebView Android Tam destek 1Chrome Android Tam desteği 18Firefox Android Tam destek 4Opera Android Tam destek EvetSafari iOS Tam destek EvetSamsung Internet Android Tam destek 1.0nodejs 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.