Məzmuna keç
Educora
Başlanğıc18 dəq3 / 10

Şərtlər və dövrlər

Proqramına qərar verməyi və işi təkrarlamağı öyrət: `if`, `switch`, müqayisə və məntiqi operatorlar, `for`, `while`, `break` və `continue`.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • Müqayisə və məntiqi operatorlarla if, else if, else yazmaq
  • switch ilə bir neçə variantdan birini seçmək
  • for, while və do-while dövrləri ilə işi təkrarlamaq
  • Dövrləri break və continue ilə idarə etmək

Oyunda personajın canı sıfıra düşəndə «Game over» yazısı çıxır, hər kadrda isə ekran yenidən çəkilir. Birincisi şərtdir — proqram vəziyyətə görə qərar verir. İkincisi dövrdür — eyni iş təkrar-təkrar görülür. Bu iki alət olmadan heç bir ciddi proqram yazmaq mümkün deyil.

if, else if və else

if açar sözündən sonra mötərizədə şərt yazılır. Şərt doğrudursa (true), fiqurlu mötərizədəki blok icra olunur. else if növbəti şərti yoxlayır, else isə heç bir şərt ödənmədikdə işləyir. Şərtlər yuxarıdan aşağı yoxlanır və yalnız birinci doğru şərtin bloku icra olunur.

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;
}
Gözlənilən nəticə
Good

score 78-dir: birinci şərt (78 >= 90) yalandır, ikincisi (78 >= 70) doğrudur — ekrana Good çıxır və qalan şərtlər artıq yoxlanmır.

Müqayisə və məntiqi operatorlar

OperatorMənasıDoğru olan nümunə
==bərabərdir5 == 5
!=bərabər deyil5 != 3
< >kiçikdir, böyükdür3 < 5
<= >=kiçik və ya bərabər, böyük və ya bərabər5 >= 5
&&VƏ: hər iki şərt doğrudur4 > 0 && 4 < 10
||VƏ YA: ən azı biri doğrudur4 < 0 || 4 > 2
!DEYİL: qiyməti tərsinə ç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;
}
Gözlənilən nəticə
Welcome to the cinema!
Standard price
İnteraktiv
Simulyasiya yüklənir…
&& operatoru VƏ məntiqi elementi kimi işləyir: çıxış yalnız hər iki giriş 1 olanda 1-dir.

switch: bir neçə variantdan seçim

Bir dəyişəni çoxlu konkret qiymətlərlə müqayisə etmək lazımdırsa, switch rahatdır. Hər case bir qiyməti yoxlayır, break isə switch-dən çıxır. break unudulsa, icra növbəti case-ə «keçir» — bunu bəzən qəsdən edirlər: aşağıda 6 və 7 eyni nəticəni verir. default heç bir case uyğun gəlmədikdə işləyir.

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;
}
Gözlənilən nəticə
Weekend

for və while dövrləri

for dövrü təkrarların sayı əvvəlcədən məlum olanda işlədilir. Onun başlığında nöqtəli vergüllə ayrılmış üç hissə var:

  1. int i = 1 — başlanğıc: sayğac dəyişəni bir dəfə yaradılır.
  2. i <= 5 — şərt: hər təkrardan əvvəl yoxlanır; yalan olanda dövr bitir.
  3. i++ — addım: hər təkrardan sonra icra olunur.
C++
#include <iostream>

int main() {
    for (int i = 1; i <= 5; i++) {
        std::cout << i << " x 3 = " << i * 3 << '\n';
    }
    return 0;
}
Gözlənilən nəticə
1 x 3 = 3
2 x 3 = 6
3 x 3 = 9
4 x 3 = 12
5 x 3 = 15

while dövrü şərt doğru olduqca işləyir və təkrarların sayı əvvəlcədən məlum olmayanda əlverişlidir. Məsələn: Leylanın 50 manatı var və o, hər ay 40 manat yığır. Neçə aydan sonra onun ən azı 200 manatı olacaq?

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;
}
Gözlənilən nəticə
Months: 4
Savings: 210 AZN
Qiymətlər: 90, 130, 170, 210 — dördüncü aydan sonra şərt yalan olur.

Bir də do { ... } while (şərt); dövrü var: o, şərti bloku icra etdikdən sonra yoxlayır, ona görə gövdə ən azı bir dəfə işləyir. Bu, məsələn, menyunu istifadəçiyə ən azı bir dəfə göstərmək üçün əlverişlidir.

break və continue

break dövrü dərhal dayandırır, continue isə cari təkrarın qalanını buraxıb növbəti təkrara keçir. Aşağıdakı proqram cüt ədədləri buraxır və 7-dən böyük ədədə çatanda dövrü 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;
}
Gözlənilən nəticə
1
3
5
7

Əsas fikirlər

  • if, else if, else şərtləri yuxarıdan aşağı yoxlayır və birinci doğru şərtin blokunu icra edir.
  • == müqayisə edir, = mənimsədir; &&, || və ! şərtləri birləşdirir.
  • switch bir dəyişəni konkret qiymətlərlə müqayisə edir; hər case-in sonunda break yazmağı unutma.
  • for təkrarların sayı məlum olanda, while şərt doğru olduqca işləyir; do-while ən azı bir dəfə icra olunur.
  • break dövrü dayandırır, continue isə növbəti təkrara keçir.

Özünü yoxla

10 sual. Hər düzgün cavab XP qazandırır.

1 / 10
int t = 25; olarsa, bu kod nə çap edir? if (t > 30) { std::cout << "Hot"; } else if (t > 20) { std::cout << "Warm"; } else { std::cout << "Cold"; }