- Müqayisə və məntiqi operatorlarla
if,else if,elseyazmaq switchilə bir neçə variantdan birini seçməkfor,whilevədo-whiledövrləri ilə işi təkrarlamaq- Dövrləri
breakvəcontinueilə 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.
#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;
}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
| Operator | Mənası | Doğru olan nümunə |
|---|---|---|
== | bərabərdir | 5 == 5 |
!= | bərabər deyil | 5 != 3 |
< > | kiçikdir, böyükdür | 3 < 5 |
<= >= | kiçik və ya bərabər, böyük və ya bərabər | 5 >= 5 |
&& | VƏ: hər iki şərt doğrudur | 4 > 0 && 4 < 10 |
|| | VƏ YA: ən azı biri doğrudur | 4 < 0 || 4 > 2 |
! | DEYİL: qiyməti tərsinə çevirir | !false |
#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;
}Welcome to the cinema! Standard price
&& 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.
#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;
}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:
int i = 1— başlanğıc: sayğac dəyişəni bir dəfə yaradılır.i <= 5— şərt: hər təkrardan əvvəl yoxlanır; yalan olanda dövr bitir.i++— addım: hər təkrardan sonra icra olunur.
#include <iostream>
int main() {
for (int i = 1; i <= 5; i++) {
std::cout << i << " x 3 = " << i * 3 << '\n';
}
return 0;
}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?
#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;
}Months: 4 Savings: 210 AZN
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:
#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;
}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.switchbir dəyişəni konkret qiymətlərlə müqayisə edir; hərcase-in sonundabreakyazmağı unutma.fortəkrarların sayı məlum olanda,whileşərt doğru olduqca işləyir;do-whileən azı bir dəfə icra olunur.breakdövrü dayandırır,continueisə növbəti təkrara keçir.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.
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"; }