[ Web Proxy ]
URL:
Viewing: https://tr.javascript.info/ifelse [Back]  [Original]

Koul operatrleri: if, '?'
TR

Bu ak-kaynakl projenin tm dnyada kullanlabilir olmasn istiyoruz.

Kendi dilinizde eviriye yardm edebilirsiniz!

    Javascript.info'da ara:
    Eitimde ara:
    Light themeDark theme
    DanskEnglishEspaolFranaisIndonesiaItalianoTrkeOzbek

    Koul operatrleri: if, '?'

    Baz durumlarda koula gre farkl eylemler yapmak isteyebilirsiniz.

    "?" operatr veya if cmlesi bu koullar kontrol etmenizi salar.

    if cmlesi

    if cmlesi koulu alr ve kontrol eder sonucunda true ise kodu altrr.

    rnein:

    let yil = prompt('ECMAScript-2015 standarlar hangi yl yaynlanmtr?', '');
    
    if (yil == 2015) alert( 'Evet doru!' );

    Yukardaki rnekte if basit bir eitlii kontrol eder yil == 2015, fakat bu kontrol elbette daha karmak olabilir.

    Eer birden fazla komut altrmak isterseniz bunu ssl parantez iinde yapabilirsiniz.

    if (yil == 2015) {
      alert( "Evet doru!" );
      alert( "Bravo!" );
    }

    Her if kullandnzda ssl parantez kullanmanz okunurluu artracaktr. Tek satr bile yazsanz ssl parantez iinde yazmanz nerilir.

    Boolean dntrme

    if(...) cmlesi parantez iine yazdmz ifadeyi altrr ve bunu sonucu boolean tipinde dnderir.

    Tip Dnmleri blmn hatrlarsanz:

    • 0, bo karakter "", null, undefined ve NaN false olarak dndrlr. Bunlara falsy yani yanl deerler de diyebiliriz.
    • Dier deerler ise true olur ve bunlara truthy veya doru deerler de denebilir. ( Not: Bunlarn tam karlklarn bulamadm )

    rnein aadaki kod satr hibir zaman almayacaktr:

    if (0) { // 0 false dndrr
      ...
    }

    Aadaki ise her zaman alacaktr:

    if (1) { // 1 her zaman true dndrr
      ...
    }

    Ayrca art yazmadan nce de kodun deerlendirmesi yaplabilir.

    let sonuc = (year == 2015); // eitlik doru yanl deerlendirmesi yapmaya yarar.
    
    if (sonuc) {
      ...
    }

    else cmlesi

    if cmlesi opsiyonel olarak else blou da ierebilir. Bu eer if parantezi ierisinde yazdmz kod yanl ise alr.

    rnein:

    let yil = prompt('ECMAScript-2015 standarlar hangi yl yaynlanmtr?', '');
    
    if (yil == 2015) {
      alert( 'Doru!' );
    } else {
      alert( 'Nasl bu kadar yanl yapabiliyorsun!' ); // 2015 dndaki her deerde buras alr.
    }

    Birden fazla koul: else if

    Baz durumlarda birden fazla durumu kontrol etmeniz gerekebilir. Bu durumlarda else if cmlesi kullanabilirsiniz.

    rnein:

    let yil = prompt('ECMAScript-2015 standarlar hangi yl yaynlanmtr?', '');
    
    if (yil < 2015) {
      alert( 'daha sonra...' );
    } else if (yil > 2015) {
      alert( 'daha nce' );
    } else {
      alert( 'Kesinlikle!' );
    }

    Yukardaki kodda nce yil < 2015 kontrol yaplr. Eer bu deerlendirme yanl ise bir sonraki koula geilir. Eer year > 2015 doru ise bu koul iindeki alarm fonksiyonu alr. Dier hallerde son alert fonksiyonu alr.

    Sonuncusunda bir tane daha else if blou olabilirdi: else if ( yil == 2015 )

    l operatr ?

    Bazen alert yerine bir deikene deer atamak isteyebilirsiniz.

    rnein:

    let girisIzni;
    let yas = prompt('Ka yandasn?', '');
    
    if (yas > 18) {
      girisIzni = true;
    } else {
      girisIzni = false;
    }
    
    alert(girisIzni);

    l veya soru iareti operatr yukardaki ilemi daha kolay yapmanz salar.

    Operatr "?" iareti ile ifade edilir. Resmi tanmda l kullanlmasnn sebebi tane operanddan olumasndan dolaydr. Aslnda JavaScript dilinde 3 tane operand olan baka bir operatr yoktur.

    Yazm u ekildedir:

    let sonuc = koul ? deger1 : deger2

    koul deerlendirildikten sonra eer doru dner ise deger1 yanl dner ise deger2 sonu deikenine atanr.

    rnein:

    let girisIzni = (yas > 18) ? true : false;

    Aslnda yas > 18 etrafndaki parantezleri de kaldrabiliriz. nk soru iareti > gre daha dk ncelie sahiptir. yas > 18 ? true : false eklinde yazlsa da sonu deimeyecektir.

    // the comparison operator "age > 18" executes first anyway
    // (no need to wrap it into parentheses)
    let girisIzni = yas > 18 ? true : false;

    Fakat yine de parantez kullanmanz nerilir. Bu okunabilirlii artrmaktadr.

    Dikkate deer:

    Yukardaki rnekte soru iaretini kaldrmak mmkndr nk karlatrmann kendisi true/false dndrr:

    // the same
    let girisIzni = yas > 18;

    oklu ?

    Birden fazla "?" iareti kullanarak birden fazla koula gre deer dndrme ilemini salayabilirsiniz.

    rneiN:

    let yas = prompt('ya?', 18);
    
    let mesaj = (yas < 3) ? 'Ne tatl eysin sen yle!' :
      (yas < 18) ? 'Merhaba!' :
      (yas < 100) ? 'Merhaba efendim!' :
      'Ne garip bir yan var!';
    
    alert( mesaj );

    lk bata neyin ne olduunu anlamak zaman alabilir. Fakat daha yakndan baknca sra ile deerin kontrol edildiini grebilirsiniz.

    1. lk soru iareti yas < 3 kontroln yapar.
    2. Eer doru ise Ne tatl eysin sen yle! dndrr. Dier trl sonraki ":"e gider ve yas < 18 kontroln yapar.
    3. Eer doru ise Merhaba dndrr. Dier trl sonraki ":"e gider ve yas < 100 kontroln yapar.
    4. Eer doru ise Merhaba efendim dndrr. Dier trl sonraki ":"e gider ve 'Ne garip bir ya' dner.

    ayn if..else mant gibi

    if (yas < 3) {
      mesaj = 'Ne tatl eysin sen yle!';
    } else if (yas < 18) {
      mesaj = 'Merhaba!';
    } else if (yas < 100) {
      mesaj = 'Merhaba efendim!';
    } else {
      mesaj = 'Ne garip bir yan var!';
    }

    Geleneksel olmayan olmayan ? kontrol

    Baz durumlarda '?' if in yerine kullanlabilir:

    let firma = prompt('JavaScript hangi firma tarafndan yaratlmtr?', '');
    
    (firma == 'Netscape') ?
       alert('Doru!') : alert('Yanl.');

    Koula gre firma =='Netscape', soru iaretinden sonra birinci blm veya ikinci blm alr.

    Sonucu bir deere atanmamtr. Ama duruma gre dorudan kodu altrmak.

    Soru iaretinin bu ama dorultusunda kullanlmas nerilmez.

    Yazm if yazmndan daha ksa olsa bile daha az okunabilir durumdadr. Aada if ile yazmn grmektesiniz.

    let firma = prompt('JavaScript hangi firma tarafndan yaratlmtr?', '');
    
    if (firma == 'Netscape') {
      alert('Doru!');
    } else {
      alert('Yanl.');
    }

    Okurken kodu dikey olarak okuruz. Bundan dolay yazmn bir ka satra datlmas okumay uzun satrlara gre daha kolay hale getirir.

    '?' iaretinin ideal kullanm sadece o ya da bu sorusudur. Daha uzun bir cmle iin if kullanmalsnz.

    Grevler

    nem: 5

    Alert gsterilecek mi?

    if ("0") {
      alert( 'Merhaba' );
    }
    zm

    Evet gsterecek.

    Bo karakter dndaki her karakter true dndrecektir.

    altrp deneyebilirsiniz:

    if ("0") {
      alert( 'Merhaba' );
    }
    nem: 2

    if..else blou kullanarak JavaScript'in resmi ismi nedir? sorusunu sorun.

    Eer kullanc ECMAScript cevab verirse Doru dier trl ECMAScript olduunu bilmiyormusun? yazsn alarm olarak gsterin.

    []

    Yeni pencerede gster

    zm
    <!DOCTYPE html>
    <html>
    
    <body>
      <script>
        'use strict';
    
        let value = prompt('JavaScript\'in resmi ismi nedir?', '');
    
        if (value == 'ECMAScript') {
          alert('Doru!');
        } else {
          alert("ECMAScript olduunu bilmiyormusun?");
        }
      </script>
    
    
    </body>
    
    </html>
    nem: 2

    if..else cmlesi kullanarak prompt komutu ile soru sorup alert ile sonucu gsterin.

    • 1, deer sfrdan byk ise,
    • -1, sfrdan kk ise,
    • 0, sfr ise.

    Bu rnekte kullancnn girecei tm deerlerin say olduunu varsayabilirsiniz. [demo src=if_sign]

    zm
    let deger = prompt('Bir say yaznz', 0);
    
    if (deger > 0) {
      alert( 1 );
    } else if (deger < 0) {
      alert( -1 );
    } else {
      alert( 0 );
    }
    nem: 5

    Aadaki if cmlesini l operatre '? olarak yazn:

    if (a + b < 4) {
      sonuc = 'Dk';
    } else {
      sonuc = 'Yksek';
    }
    zm
    let sonuc = (a + b < 4) ? 'Dk' : 'Yksek';
    nem: 5

    Aadaki if..else cmlesini l operatrler '? olarak yazn:

    Okunabilirlik asndan kodu satrlara blmeniz nerilir.

    let mesaj;
    
    if (giris == 'alan') {
      mesaj = 'Merhaba';
    } else if (giris == 'Ynetici') {
      mesaj = 'Sana da merhaba patron';
    } else if (giris == '') {
      mesaj = 'Giri yasak';
    } else {
      mesaj = '';
    }
    zm
    let mesaj = (giris == 'alan') ? 'Merhaba' :
      (giris == 'Ynetici') ? 'Sana da merhaba patron' :
      (giris == '') ? 'Giri yasak' :
      '';
    Eitim haritas

    Yorumlar

    yorum yapmadan nce ltfen okuyun...
    • Eer gelitirme ile alakal bir neriniz var ise yorum yerine github konusu gnderiniz.
    • Eer makalede bir yeri anlamadysanz ltfen belirtiniz.
    • Koda birka satr eklemek iin <code> kullannz, birka satr eklemek iin ise <pre> kullann. Eer 10 satrdan fazla kod ekleyecekseniz plnkr kullanabilirsiniz)

    Web Proxy Viewer  |  New URL  |  Original Page