C++ / Birlikte Yazılım Öğrenelim Serisi - if ve else blokları

YunusEmreOfficial

Online - Çevrimiçi
Premium Üye
Yardımsever Üye
Usta Üye
Mesaj
1.268
Çözümler
35
Beğeni
938
Puan
1.140
Ticaret Puanı
1

C++ / Birlikte Yazılım Öğrenelim Serisi - if else Blokları​

Merhaba arkadaşlar!
Birlikte yazılım öğrenmeye kısa bir aranın ardından devam ediyoruz. Bugünkü konumuz "if-else" blokları. Programlama dillerinin temel yapı taşlarından biri olan bu blokları anlamak, karar mekanizmalarını kodlarımızda uygulamamızı sağlar. Hadi, önce teorik olarak ne olduğunu öğrenelim, ardından bol örnekle konuyu pekiştirelim.

if-else Nedir?​

C++'ta if-else blokları, programın belirli bir koşula göre farklı yollar izlemesini sağlar.
Kısaca şöyle düşünebiliriz:

"Eğer bir koşul doğruysa ( if ) şu kodu çalıştır, değilse ( else ) başka bir kodu çalıştır."

Bu yapı sayesinde programımız, duruma göre farklı işlemler gerçekleştirebilir. Örneklerle ne demek istediğimizi açıklayacağız.

if Yapısı​

Bir if bloğu, belirtilen bir koşulun doğru (true) olup olmadığını kontrol eder. Koşul doğruysa, içindeki kod çalıştırılır.

Örnek Kullanım:
Genişlet Daralt Kopyala
if (koşul) {
    // Koşul doğruysa çalışacak kodlar
}
Kodu yazarken dikkat etmeniz gereken husus, if bloğunu bu şekilde şartını yada parantezini yanından yazabilirsiniz. 2. Bir kullanım olarak 1 alt satırdan yazmak, yani demek istediğim şey şu :
C++:
Genişlet Daralt Kopyala
if (koşul)
 {
    // Koşul doğruysa çalışacak kodlar
 }
Burda dikkat etmeniz gereken kısım { 'in 1 tab içerden başlaması. 1 boşluk demiyorum dikkat edin. 1 tab boşlukla başlaması gerekiyo ki, if bloğu içerisinde olduğunu sistem anlasın.

else yapısı​

Eğer koşul yanlış (false) ise, else bloğundaki kod çalışır.
Örnek Kullanım:
Genişlet Daralt Kopyala
else {
    // Koşul yanlışsa çalışacak kodlar
}

if-else Yapısı

Bir if-else bloğu, koşulun doğru olup olmadığını kontrol eder. Eğer koşul yanlış (false) ise, else bloğundaki kod çalışır.
Örnek Kullanım:
Genişlet Daralt Kopyala
if (koşul) {
    // Koşul doğruysa çalışacak kodlar
} else {
    // Koşul yanlışsa çalışacak kodlar
}

Örnekler Üzerinden İnceleyelim​

Basit örneklerden başlayalım.
Örneğin : Bir sayının pozitif olup olmadığını kontrol eden bir program yazalım.
C++:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int sayi;

    cout << "Bir sayı girin: ";
    cin >> sayi;

    if (sayi > 0) {
        cout << "Girilen sayı pozitiftir." << endl;
    }

    return 0;
}

Kodlarda gördüğünüz gibi, kullanıcıdan bir sayı girmesini istedik. Bu sayının 0'dan büyükmü değilmi ? Yani pozitif olup olmama durumunu kontrol ettirdik.

Çıktı :
C++:
Genişlet Daralt Kopyala
Çıktı:

Eğer 5 girerseniz:
Girilen sayı pozitiftir.

Eğer -3 girerseniz:
Hiçbir şey yazdırmaz (çünkü koşul sağlanmaz).

Örnekte gördüğünüz gibi pozitif sayı girdiğimiz zaman, kodumuz sorunsuz çalışıyor fakat negatif sayı girdiğimiz zaman kod çalışmıyor. Aslında çalışıyor ama ekrana yazdırcak birşey olmadığı için boş geçiyor. İşte else de tamda burda devreye giriyor.
Hadi onuda aşağıda yazalım.
Şimdi yukarda elsenin nasıl kullanılacağını söyledik. O halde negatif girdiğimizde hangi kodların çalışacağını yazalım.
C++:
Genişlet Daralt Kopyala
else {
        cout << "Girilen sayı negatiftir veya sıfırdır." << endl;
    }

Gördüğünüz gibi bu şekilde yazarken pozitif dışında girilen tüm değerler de else dönecek.
Ancak dikkat etmeniz gereken konu, 0 sayısı ne negatiftir, ne de pozitif. Nötr olduğu için onu girdiğimizdede else dönecektir.

Hadi 2 kodu birleştirelim.

C++:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int sayi;

    cout << "Bir sayı girin: ";
    cin >> sayi;

    if (sayi > 0) {
        cout << "Girilen sayı pozitiftir." << endl;
    } else {
        cout << "Girilen sayı negatif veya sıfırdır." << endl;
    }

    return 0;
}

Çıktı :
Çıktı ::
Genişlet Daralt Kopyala
Çıktı:

Eğer 10 girerseniz:
Girilen sayı pozitiftir.

Eğer -5 girerseniz:
Girilen sayı negatif veya sıfırdır.

Eğer 0 girerseniz:
Girilen sayı negatif veya sıfırdır.


Sonuç​

C++'ta if-else yapısı, programlarımızda akıllı ve dinamik kararlar alabilmemizi sağlar. Örnekte gördüğünüz gibi, koşullara bağlı olarak farklı işlemler gerçekleştirebiliyoruz.
Bu konuyu iyice pekiştirmek için kendi örneklerinizi yazmayı deneyin! Diğer arkadaşlarında örnek alabilmesi için aşağıdan yorum olarak ekleyebilirsiniz. Bir sonraki konuda görüşmek üzere, şimdiden başarılar!



Not : Olası hata bildirimleri, iletişim veya gelişmelerden erken haber almak için discord kanalıma gelebilirsiniz.
Linkleri görebilmek için giriş yap veya kayıt ol.


Önemli not: Bu konu ve açacağım diğer konular tamamen kendime ait konular herhangi bir yerden alıntı değildir.
Mmotutkunlarına özel içeriktir.
Lütfen alacaksanız bile kaynak gösteriniz.

Sevgilerle.
 
Konunun okuyucularına 1 soru soralım.
Soru : 0 ile 23 arasında giirilen sayıya göre, sabah öğle akşam ve gece olduğunu açıklayan programı yazınız.
Bunu yazarken else if kullanmak yasak !!.
 
cpp:
Genişlet Daralt Kopyala
#include <iostream>

int main()
{
    int input {};

    std::cout << "Saati gir: ";
    std::cin >> input;

    std::cout << ((input > 0 && input < 8 ) ? "Sabah" : (input > 8 && input < 16) ? "Oglen" : "Aksam");

    return 0;
}
 
cpp:
Genişlet Daralt Kopyala
#include <iostream>

int main()
{
    int input {};

    std::cout << "Saati gir: ";
    std::cin >> input;

    std::cout << ((input > 0 && input < 8 ) ? "Sabah" : (input > 8 && input < 16) ? "Oglen" : "Aksam");

    return 0;
}
Vaaay, bu tarz bi cevabın gelmesi şaşırttı doğrusu. Farklı bir bakış açısı.
Daha önceki konularımdan ternary örneği çokda güzel olmuş ellerine sağlık. 😍

Nasıl kullanıldığını öğrenmek için aşağıdaki alıntıladığım konuya gidebilirsiniz.

8. Özel Amaçlı Ternary Operatörü ( ?: )​

Bu konudan sonralarında göreceğimiz ‘if’ yapısının yaptığı görevi yapmaktadır. Kullanımı ise şu şekildedir:koşul ? doğru_ise : yanlış_iseŞimdi kod içerisinde kullanalım :


Cevabına gelecek olursak.
Mantık güzel kısmen doğru ama eksik. Eksik kısımlar büyüktür küçüktür kullanmışsın ama ya o sayıları girseler mesela ;
(input > 0 && input < 8 ) şurayı örnek verelim 0'dan büyük olacak 8den küçük, peki 0 girersem yada 8 girersem ? :)
Bir diğer sorun sayıları 0 ile 23 arasında dedim ama ben kullanıcıyım ya 24 girersem ya 30 girersem. Ya da 500 girersem ?

Bilerekmi ternary kullandın bilmiyorum ama bilgi vermekte fayda var.
Bunu yazarken else if kullanmak yasak !!.
Bunu söylerken if veya da else kullanmayın demedim. Elseif ya da elif kullanmayın dedim. 😄
 
C++ yeni başladım. Muhtemelen daha kısa kullanımı vardır.

saat:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int saat;
    cout << "Saat giriniz: ";
    cin >> saat;

    // Gece
    if (saat >= 0 && saat <= 5) {
        cout << "Gece" << endl;
    }

    // Sabah
    if (saat >= 6 && saat <= 11) {
        cout << "Sabah" << endl;
    }

    // Öğle
    if (saat >= 12 && saat <= 17) {
        cout << "Öğle" << endl;
    }

    // Akşam
    if (saat >= 18 && saat <= 23) {
        cout << "Akşam" << endl;
    }

    // Geçersiz saat
    if (saat < 0 || saat > 23) {
        cout << "Geçersiz saat!" << endl;
    }

    return 0;
}
 
Kabaca yazdığım için çok dikkat etmedim, şu şekilde bence mantıklı oldu:
cpp:
Genişlet Daralt Kopyala
#include <iostream>

int main()
{
    int input {};

    std::cout << "Saati gir: ";
    std::cin >> input;

    std::cout << (
        (input < 24) ? (input > 0 && input <= 8 ) ? "Sabah" : (input > 8 && input <= 16) ? "Oglen" : "Aksam"
        : "23'den buyuk bi sayi girme"
        );

    return 0;
}
Else if kullanmak yasak derken ben tamamıyla if, else if, else bloklarını kullanmak yasak diye anladım :D
 
C++ yeni başladım. Muhtemelen daha kısa kullanımı vardır.

saat:
Genişlet Daralt Kopyala
#include <iostream>
using namespace std;

int main() {
    int saat;
    cout << "Saat giriniz: ";
    cin >> saat;

    // Gece
    if (saat >= 0 && saat <= 5) {
        cout << "Gece" << endl;
    }

    // Sabah
    if (saat >= 6 && saat <= 11) {
        cout << "Sabah" << endl;
    }

    // Öğle
    if (saat >= 12 && saat <= 17) {
        cout << "Öğle" << endl;
    }

    // Akşam
    if (saat >= 18 && saat <= 23) {
        cout << "Akşam" << endl;
    }

    // Geçersiz saat
    if (saat < 0 || saat > 23) {
        cout << "Geçersiz saat!" << endl;
    }

    return 0;
}
Öncelikle cevap için teşekkürler. C++ yolunuzda başarılar dilerim.

Kodunuzun uzun olmasını bilerek istedim. Zaten soruyuda ona göre sordum.

Cevabın doğru istediğim tarzda bi cevaptı. Ufak bir hatan var.
if (saat >= 0 && saat <= 5)
Burası

if (saat = 0 && saat <= 5)
Böyle olursa daha doğru olur. - sayı girdiğimizde hem burası çalışır hemde sondaki Geçersiz sayı ifi çalışır. Yani aynı anda 2 out işlemi olur. Çünkü ifler birbirinden bağımsız çalışır. 1.cümle yanlış olsa bile kodlar durmaz çalışmaya devam eder.
Else if de bu yüzden önemlidir. Bir sonraki konuda bundan bahsedicem.
Cevabın doğru teşekkür ederim tekrardan.
 
Kabaca yazdığım için çok dikkat etmedim, şu şekilde bence mantıklı oldu:
cpp:
Genişlet Daralt Kopyala
#include <iostream>

int main()
{
    int input {};

    std::cout << "Saati gir: ";
    std::cin >> input;

    std::cout << (
        (input < 24) ? (input > 0 && input <= 8 ) ? "Sabah" : (input > 8 && input <= 16) ? "Oglen" : "Aksam"
        : "23'den buyuk bi sayi girme"
        );

    return 0;
}
Else if kullanmak yasak derken ben tamamıyla if, else if, else bloklarını kullanmak yasak diye anladım :D
İlgin için teşekkürler. Böylesi daha uygun oldu. Ancak ufak bir ekleme yapsak daha iyi olur sanki.
(input < 0) ? "Negatif bir saat girme":

Ellerine sağlık. 😇
 
Açıkçası okunaklılık açısından çok kötü yazdığım kod :ROFLMAO:
Evet öyle ama iyi tarafından bak senden başka kimse anlamiycak. 😂😂
Bu adam ne yazdı acaba diyip düşünüp duracak.
Bu arada senin için if ve elseli hale dönüştüreyim. 😅
Kodlarımızı konumuza uyduracak olursak. Mantığın çok güzel bu arada.

C++:
Genişlet Daralt Kopyala
#include <iostream>

int main()
{
    int input {};

    std::cout << "Saati gir (0-23): ";
    std::cin >> input;

    if (input >= 0 && input < 24) {
        std::cout << ((input >= 0 && input < 5)
                        ? "Gece"
                        : (input >= 5 && input < 8)
                            ? "Sabah"
                            : (input >= 8 && input < 16)
                                ? "Oglen"
                                : "Aksam");
    } else {
        std::cout << "Geçersiz saat girdiniz!";
    }

    return 0;
}
 
Geri
Üst