C++ Ders 14[Koşullar kısım 2]

Life Hunter

Lapis Toplayıcısı
Mesajlar
930
En iyi cevaplar
0
Beğeniler
480
Puanları
980
İf ile ilgili değişik örnekler yapalım:


Kod:
    int sayi1, sayi2, sonuc;

    cout << "1. sayiyi girin: ";
    cin >> sayi1;
    cout << "2.sayiyi girin: ";
    cin >> sayi2;

    sonuc = sayi1 > sayi2;

    if (sonuc)
        cout << "sayi1 buyuk";
Şu kodu inceleyelim. Öncelikle sayi1,sayi2 ve sonuc adlı 3 değişken belirledik. Ardından sayi1 ve sayi2 değerlerini kullanıcıdan aldık. Sonrasında sonuc = sayi1 > sayi2 ifadesi kullanılmış gördüğünüz üzere. sonuc değişkenin değeri burada ne olur? Eğer kullanıcı sayi1 değişkeninin değerini sayi2 değişkeninden büyük girmiş ise sonuc değişkeninin değeri true yani 1, tam tersini girmiş ise false yani 0 olur. Şöyle örnek vereyim:

Diyelimki kullanıcı ilk sayıyı 5 ve ikinci sayıyı 3 girdi. Sonrasında derleyici sonuc değişkenin değerine sayi1 > sayi2 ifadesini atadı. Kullanıcı sayi1 değişkenine hangi sayıyı atamıştı? 5 sayısını. Peki sayi2 değişkenine hangi sayıyı atamıştı? 3 sayısını. sayi1 > sayi2 ifadesi 5 > 3 ifadesidir aslında. Çünkü sayi1 değişkeninin değeri 5, sayi2 nin ise 3. Peki beş üçten büyükmüdür? Evet büyüktür. Yani true bir ifade bu. true nun sayısal karşılığı da 1 dir. Beş üçten büyük olduğu için true bir ifade oldu bu ifade. true nun sayısal karşılığıda 1 olduğu için sonuc değişkeninin değeri 1 oldu çünkü biz sonuc değişkenin değerine sayi1 > sayi2 ifadesinin sonucu atadık.
sayi1 > sayi2 ifadesinin sonucu neydi? true yani 1 değilmi? O zaman sonuc değişkenin değeri 1 oldu. Sonrasında bir if açmışız ve koşul olarak sonuc demişiz.
sonuc değişkenin değeri 1 di. Yani if(1) ile aynı şey demek oldu bu. Eğer siz bir if yapısının içine 0 dışındaki sayıları koyarsanız, o koşul true kabul edilir yani koşulun bağlı kod satırları çalışır. Eğer 0 koyarsanız, o zaman false olur ve o koşul hiç işletilmez. Benim verdiğim örnekte sonuc değişkenin değeri 1 olduğu için koşulun içine girecek yani "sayi1 buyuk" ifadesi ekrana çıkacak.

Eğer tam tersi bir durum olsaydı, yani kullanıcı sayi1 değişkenine 3 ve sayi2 değişkenine 5 değeri girseydi, sonuc değişkeninin değeri false yani 0 olacaktı. Çünkü
sayi1 > sayi2 ifadesi artık sağlanmıyor. sayi1 değişkeni sayi2 den küçük oluyor bu durumda ve sayi1 > sayi2 ifadesi sağlanmıyor yani false(0) oluyor. Ne demiştim? Eğer if'in içine koşul olarak 0 girerseniz, if işletilmez. Kullanıcı sayi2 değişkenin değerini büyük girdiği durumlarda sonuc değişkenin değeri 0 olacağından, koşul hiç işletilmeyecek yani ekrana "sayi1 buyuk" ifadesi çıkmayacak.

İf içerisine başka ne yazılabilir? Mesela negatif bir sayı yazabiliriz:
Kod:
if(-1)
{
   cout << "Minecraft Turk";
}
Ne demiştik? İf içerisine 0 dışında yazılan bütün sayılar true değerini alır yani o koşul işletilir. -1 de 0 dan farklı bir sayı olduğu için bu koşul işletilecek ve ekrana "Minecraft Turk" ifadesi çıkacak.

Hatta tuhaf şeyler yapalım:

Kod:
if("Merhaba")
{
    cout << "Minecraft Turk";
}
Bu da kabul edilir. Sonuçta karakter değerli 0 dan farklı değerler. 0 dan farklı ne var ise onun sonucu true dur.

Peki 0 koyarsak ne olur?
Kod:
if(0)
{
    cout << "Minecraft Turk";
}
Koşul işletilmez. Sadece 0 olduğu durumlarda koşul işletilmiyor.

Bu ders bu kadar.
 


Son düzenleme:

Üst