İçeriğe geç
Educora
Başlangıç18 dk3 / 10

Koşullar ve döngüler

Programına karar vermeyi ve işleri tekrarlamayı öğret: `if`, `switch`, karşılaştırma ve mantıksal operatörler, `for`, `while`, `break` ve `continue`.

Kendini test et
Bu derste öğreneceklerin
  • Karşılaştırma ve mantıksal operatörlerle if, else if, else yazmak
  • switch ile birkaç seçenekten birini seçmek
  • for, while ve do-while döngüleriyle işleri tekrarlamak
  • Döngüleri break ve continue ile yönetmek

Bir oyunda karakterin canı sıfıra düştüğünde “Game over” yazısı çıkar, ekran ise her karede yeniden çizilir. Birincisi bir koşuldur: program duruma göre karar verir. İkincisi bir döngüdür: aynı iş tekrar tekrar yapılır. Bu iki araç olmadan ciddi hiçbir program yazılamaz.

if, else if ve else

if anahtar sözcüğünden sonra parantez içine bir koşul yazılır. Koşul doğruysa (true), süslü parantezlerdeki blok çalışır. else if bir sonraki koşulu denetler, else ise hiçbir koşul sağlanmadığında çalışır. Koşullar yukarıdan aşağıya denetlenir ve yalnızca ilk doğru koşulun bloğu çalışır.

C++
#include <iostream>

int main() {
    int score = 78;

    if (score >= 90) {
        std::cout << "Excellent\n";
    } else if (score >= 70) {
        std::cout << "Good\n";
    } else if (score >= 50) {
        std::cout << "Satisfactory\n";
    } else {
        std::cout << "Try again\n";
    }
    return 0;
}
Beklenen çıktı
Good

score 78'dir: ilk koşul (78 >= 90) yanlış, ikincisi (78 >= 70) doğrudur; ekrana Good yazılır ve kalan koşullar hiç denetlenmez.

Karşılaştırma ve mantıksal operatörler

OperatörAnlamıDoğru örnek
==eşittir5 == 5
!=eşit değildir5 != 3
< >küçüktür, büyüktür3 < 5
<= >=küçük veya eşit, büyük veya eşit5 >= 5
&&VE: iki koşul da doğru4 > 0 && 4 < 10
||VEYA: en az biri doğru4 < 0 || 4 > 2
!DEĞİL: değeri tersine çevirir!false
C++
#include <iostream>

int main() {
    int age = 15;
    bool hasTicket = true;

    if (age >= 12 && hasTicket) {
        std::cout << "Welcome to the cinema!\n";
    }
    if (age < 7 || age > 65) {
        std::cout << "Free entry\n";
    } else {
        std::cout << "Standard price\n";
    }
    if (!hasTicket) {
        std::cout << "Please buy a ticket\n";
    }
    return 0;
}
Beklenen çıktı
Welcome to the cinema!
Standard price
Etkileşimli
Simülasyon yükleniyor…
&& operatörü VE kapısı gibi çalışır: çıkış yalnızca iki giriş de 1 olduğunda 1'dir.

switch: seçenekler arasından seçim

Bir değişkeni birçok belirli değerle karşılaştırman gerektiğinde switch kullanışlıdır. Her case bir değeri denetler, break ise switch'ten çıkar. break unutulursa çalışma bir sonraki case'e “düşer”; bu bazen bilerek yapılır: aşağıda 6 ve 7 aynı sonucu verir. default, hiçbir case uymadığında çalışır.

C++
#include <iostream>

int main() {
    int day = 6;
    switch (day) {
        case 6:
        case 7:
            std::cout << "Weekend\n";
            break;
        case 5:
            std::cout << "Almost weekend\n";
            break;
        default:
            std::cout << "Working day\n";
    }
    return 0;
}
Beklenen çıktı
Weekend

for ve while döngüleri

for döngüsü, tekrar sayısı önceden bilindiğinde kullanılır. Başlığında noktalı virgülle ayrılmış üç bölüm vardır:

  1. int i = 1 — başlangıç: sayaç değişkeni bir kez oluşturulur.
  2. i <= 5 — koşul: her tekrardan önce denetlenir; yanlış olduğunda döngü biter.
  3. i++ — adım: her tekrardan sonra çalışır.
C++
#include <iostream>

int main() {
    for (int i = 1; i <= 5; i++) {
        std::cout << i << " x 3 = " << i * 3 << '\n';
    }
    return 0;
}
Beklenen çıktı
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15

while döngüsü koşul doğru olduğu sürece çalışır ve tekrar sayısı önceden bilinmediğinde işe yarar. Örneğin: Leyla'nın 50 manatı var ve her ay 40 manat biriktiriyor. Kaç ay sonra en az 200 manatı olur?

C++
#include <iostream>

int main() {
    int savings = 50;
    int months = 0;
    while (savings < 200) {
        savings += 40;
        months++;
    }
    std::cout << "Months: " << months << '\n';
    std::cout << "Savings: " << savings << " AZN\n";
    return 0;
}
Beklenen çıktı
Months: 4
Savings: 210 AZN
Değerler: 90, 130, 170, 210; dördüncü aydan sonra koşul yanlış olur.

Bir de do { ... } while (koşul); döngüsü vardır: koşulu bloğu çalıştırdıktan sonra denetler, bu yüzden gövde en az bir kez çalışır. Örneğin kullanıcıya bir menüyü en az bir kez göstermek için kullanışlıdır.

break ve continue

break döngüyü hemen durdurur, continue ise o anki tekrarın geri kalanını atlayıp bir sonrakine geçer. Aşağıdaki program çift sayıları atlar ve 7'den büyük bir sayıya ulaşınca döngüyü bitirir:

C++
#include <iostream>

int main() {
    for (int n = 1; n <= 10; n++) {
        if (n % 2 == 0) {
            continue;
        }
        if (n > 7) {
            break;
        }
        std::cout << n << '\n';
    }
    return 0;
}
Beklenen çıktı
1
3
5
7

Önemli noktalar

  • if, else if ve else koşulları yukarıdan aşağıya denetler ve ilk doğru koşulun bloğunu çalıştırır.
  • == karşılaştırır, = atar; &&, || ve ! koşulları birleştirir.
  • switch bir değişkeni belirli değerlerle karşılaştırır; her case'in sonunda break yazmayı unutma.
  • for tekrar sayısı bilindiğinde, while koşul doğru olduğu sürece çalışır; do-while en az bir kez çalışır.
  • break döngüyü durdurur, continue ise bir sonraki tekrara geçer.

Kendini test et

10 soru. Her doğru cevap XP kazandırır.

1 / 10
int t = 25; iken bu kod ne yazdırır? if (t > 30) { std::cout << "Hot"; } else if (t > 20) { std::cout << "Warm"; } else { std::cout << "Cold"; }