7. switch¶
Oldingi bobda if va else yordamida shartlarni tekshirishni o‘rgandik.
Ba'zan bir nechta aniq qiymatdan birini tanlashimiz kerak bo‘ladi.
Masalan:
1 → Dushanba
2 → Seshanba
3 → Chorshanba
Bunday holatlarda switch ishlatish qulay.
switch nima?¶
switch biror qiymatni bir nechta variant bilan solishtiradi.
Oddiy ko‘rinishi:
switch (qiymat) {
case 1:
// kod
break;
case 2:
// kod
break;
default:
// kod
}
Oddiy misol¶
#include <iostream>
using namespace std;
int main() {
int kun = 1;
switch (kun) {
case 1:
cout << "Dushanba";
break;
case 2:
cout << "Seshanba";
break;
case 3:
cout << "Chorshanba";
break;
}
return 0;
}
Natija:
Dushanba
Chunki kun qiymati 1.
case¶
case mumkin bo‘lgan qiymatni bildiradi.
Masalan:
case 1:
Bu:
Agar qiymat 1 bo‘lsa, quyidagi kodni bajar.
degan ma'noni anglatadi.
break¶
break juda muhim.
Masalan:
case 1:
cout << "Dushanba";
break;
break switch ni to‘xtatadi.
Agar break yozilmasa, C++ keyingi case larni ham bajarishi mumkin.
Shuning uchun hozircha har bir case oxirida break yozishga odatlaning.
default¶
Agar hech qaysi case mos kelmasa, default ishlaydi.
Masalan:
int kun = 10;
switch (kun) {
case 1:
cout << "Dushanba";
break;
case 2:
cout << "Seshanba";
break;
default:
cout << "Bunday kun yo'q";
}
Natija:
Bunday kun yo'q
Foydalanuvchidan qiymat olish¶
switch ni cin bilan birga ishlatish mumkin.
Masalan:
#include <iostream>
using namespace std;
int main() {
int tanlov;
cout << "1 - Salom" << endl;
cout << "2 - Xayr" << endl;
cout << "Tanlang: ";
cin >> tanlov;
switch (tanlov) {
case 1:
cout << "Salom!";
break;
case 2:
cout << "Xayr!";
break;
default:
cout << "Noto'g'ri tanlov.";
}
return 0;
}
Agar foydalanuvchi 1 kiritsa:
Salom!
Agar 2 kiritsa:
Xayr!
chiqadi.
Kalkulyator misoli¶
switch yordamida oddiy kalkulyator yaratish mumkin.
#include <iostream>
using namespace std;
int main() {
double a, b;
char amal;
cout << "Birinchi son: ";
cin >> a;
cout << "Amalni kiriting (+, -, *, /): ";
cin >> amal;
cout << "Ikkinchi son: ";
cin >> b;
switch (amal) {
case '+':
cout << a + b;
break;
case '-':
cout << a - b;
break;
case '*':
cout << a * b;
break;
case '/':
cout << a / b;
break;
default:
cout << "Noto'g'ri amal.";
}
return 0;
}
Masalan:
Birinchi son: 10
Amalni kiriting: +
Ikkinchi son: 5
Natija:
15
switch va if farqi¶
if juda ko‘p turdagi shartlarni tekshira oladi.
Masalan:
if (yosh >= 18) {
cout << "Voyaga yetgan";
}
switch esa ko‘proq aniq qiymatlarni tanlash uchun qulay.
Masalan:
switch (kun) {
case 1:
cout << "Dushanba";
break;
case 2:
cout << "Seshanba";
break;
}
Oddiy qilib:
if → shartlarni tekshirish
switch → aniq qiymatlardan tanlash
Bir nechta case¶
Bir nechta case bir xil kodni bajarishi mumkin.
Masalan, dam olish kunlarini tekshiramiz:
int kun;
cin >> kun;
switch (kun) {
case 6:
case 7:
cout << "Dam olish kuni.";
break;
default:
cout << "Ish kuni.";
}
Agar 6 yoki 7 kiritilsa:
Dam olish kuni.
chiqadi.
Bu yerda ikkala case bitta kodga olib keladi.
switch qaysi qiymatlar bilan ishlaydi?¶
Boshlang‘ich darajada switch ni asosan:
int
char
kabi qiymatlar bilan ishlatamiz.
Masalan:
int son = 2;
yoki:
char belgi = 'A';
char bilan switch¶
Masalan:
char baho = 'A';
switch (baho) {
case 'A':
cout << "A'lo";
break;
case 'B':
cout << "Yaxshi";
break;
case 'C':
cout << "Qoniqarli";
break;
default:
cout << "Noma'lum baho";
}
Natija:
A'lo
break ni unutmaslik¶
Quyidagi kodga qarang:
int son = 1;
switch (son) {
case 1:
cout << "Bir";
case 2:
cout << "Ikki";
}
break yo‘qligi sababli case 1 dan keyin case 2 ham bajarilishi mumkin.
Natija:
BirIkki
Shuning uchun:
case 1:
cout << "Bir";
break;
ko‘rinishida yozish kerak.
Amaliy mashqlar¶
1-mashq¶
Foydalanuvchidan 1 dan 3 gacha son oling.
Natijani chiqaring:
1 → Dushanba
2 → Seshanba
3 → Chorshanba
2-mashq¶
Foydalanuvchidan belgi oling:
A
B
C
Agar A bo‘lsa:
A'lo
Agar B bo‘lsa:
Yaxshi
Agar C bo‘lsa:
Qoniqarli
chiqaring.
3-mashq¶
Oddiy kalkulyator yozing.
Foydalanuvchi:
ikki son
amal
kiritsin.
Dastur +, -, *, / amallarini bajarsin.
4-mashq¶
Quyidagi menyuni yarating:
1 - Kitoblar
2 - Filmlar
3 - O'yinlar
4 - Chiqish
Foydalanuvchi tanloviga qarab tegishli xabar chiqaring.
Muhim narsalarni eslab qoling¶
switch bir nechta aniq qiymatdan tanlash uchun ishlatiladi.
case — mumkin bo‘lgan qiymat.
break — switch ni to‘xtatadi.
default — hech qaysi case mos kelmaganda ishlaydi.
Oddiy tuzilishi:
switch (qiymat) {
case 1:
// kod
break;
case 2:
// kod
break;
default:
// kod
}
if murakkab shartlar uchun qulay.
switch esa aniq qiymatlar orasidan tanlash uchun qulay.