8. for, while va do while¶
Dasturlashda ba'zan bir xil kodni bir necha marta bajarishimiz kerak bo‘ladi.
Masalan:
Salom
Salom
Salom
Salom
Salom
Buni besh marta cout bilan yozishimiz mumkin.
Lekin bu yaxshi usul emas.
Buning o‘rniga sikllardan foydalanamiz.
C++ da asosiy uchta sikl mavjud:
for
while
do while
Sikl nima?¶
Sikl — biror kodni bir necha marta takrorlash.
Masalan:
1
2
3
4
5
raqamlarini chiqarish uchun sikldan foydalanish mumkin.
for sikli¶
for ma'lum marta takrorlash kerak bo‘lganda juda qulay.
Oddiy ko‘rinishi:
for (boshlanish; shart; o‘zgarish) {
// kod
}
Masalan:
for (int i = 1; i <= 5; i++) {
cout << i << endl;
}
Natija:
1
2
3
4
5
for qanday ishlaydi?¶
Quyidagi kodni ko‘ramiz:
for (int i = 1; i <= 5; i++) {
cout << i << endl;
}
Bu yerda:
int i = 1
boshlang‘ich qiymatni beradi.
Keyin:
i <= 5
shartni tekshiradi.
Keyin:
i++
i ni bittaga oshiradi.
Shuning uchun:
1
2
3
4
5
chiqadi.
1 dan 10 gacha¶
for (int i = 1; i <= 10; i++) {
cout << i << endl;
}
Natija:
1
2
3
4
5
6
7
8
9
10
10 dan 1 gacha¶
Siklni teskari yo‘nalishda ham ishlatish mumkin.
for (int i = 10; i >= 1; i--) {
cout << i << endl;
}
Natija:
10
9
8
7
6
5
4
3
2
1
Juft sonlarni chiqarish¶
Masalan, 2 dan 10 gacha juft sonlarni chiqaramiz:
for (int i = 2; i <= 10; i += 2) {
cout << i << endl;
}
Natija:
2
4
6
8
10
while sikli¶
while ham kodni takrorlaydi.
Uning oddiy ko‘rinishi:
while (shart) {
// kod
}
Masalan:
int i = 1;
while (i <= 5) {
cout << i << endl;
i++;
}
Natija:
1
2
3
4
5
while qanday ishlaydi?¶
Avval shart tekshiriladi:
i <= 5
Agar shart true bo‘lsa, kod bajariladi.
Keyin i oshadi:
i++;
Keyin shart yana tekshiriladi.
Bu jarayon shart false bo‘lguncha davom etadi.
while bilan hisoblash¶
Masalan:
int i = 1;
int yigindi = 0;
while (i <= 5) {
yigindi += i;
i++;
}
cout << yigindi;
Natija:
15
Chunki:
1 + 2 + 3 + 4 + 5 = 15
do while¶
do while ham sikl.
Lekin uning muhim farqi bor:
Kod kamida bir marta bajariladi.
Oddiy ko‘rinishi:
do {
// kod
} while (shart);
Masalan:
int i = 1;
do {
cout << i << endl;
i++;
} while (i <= 5);
Natija:
1
2
3
4
5
while va do while farqi¶
while avval shartni tekshiradi.
while (shart) {
// kod
}
Agar shart boshidanoq noto‘g‘ri bo‘lsa, kod umuman bajarilmaydi.
do while esa avval kodni bajaradi:
do {
// kod
} while (shart);
Shuning uchun kod kamida bir marta bajariladi.
Misol¶
while:
int i = 10;
while (i < 5) {
cout << i;
}
Bu yerda hech narsa chiqmaydi.
Chunki:
10 < 5
noto‘g‘ri.
do while:
int i = 10;
do {
cout << i;
} while (i < 5);
Natija:
10
Chunki do ichidagi kod birinchi bo‘lib bajariladi.
Foydalanuvchi bilan sikl¶
Sikllar foydalanuvchi kiritadigan ma'lumotlar bilan ham ishlatiladi.
Masalan, 5 ta son olish:
for (int i = 1; i <= 5; i++) {
int son;
cout << "Son kiriting: ";
cin >> son;
}
Dastur foydalanuvchidan besh marta son so‘raydi.
Sonlar yig‘indisi¶
Foydalanuvchidan 5 ta son olib, ularning yig‘indisini topamiz.
#include <iostream>
using namespace std;
int main() {
int yigindi = 0;
for (int i = 1; i <= 5; i++) {
int son;
cout << "Son kiriting: ";
cin >> son;
yigindi += son;
}
cout << "Yig'indi: " << yigindi;
return 0;
}
Masalan:
10
20
5
3
2
Natija:
Yig'indi: 40
Cheksiz sikl¶
Ba'zan sikl to‘xtamay qolishi mumkin.
Masalan:
int i = 1;
while (i <= 5) {
cout << i;
}
Bu yerda i hech qachon o‘zgarmaydi.
Shuning uchun:
i <= 5
doim true bo‘lib qoladi.
Natijada sikl cheksiz davom etadi.
To‘g‘ri variant:
int i = 1;
while (i <= 5) {
cout << i << endl;
i++;
}
break¶
Siklni oldinroq to‘xtatish uchun break ishlatiladi.
Masalan:
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
}
cout << i << endl;
}
Natija:
1
2
3
4
i 5 ga yetganda sikl to‘xtaydi.
continue¶
continue joriy takrorlashni tashlab, keyingi takrorlashga o‘tadi.
Masalan:
for (int i = 1; i <= 5; i++) {
if (i == 3) {
continue;
}
cout << i << endl;
}
Natija:
1
2
4
5
Bu yerda 3 chiqarilmadi.
Qaysi sikldan foydalanish kerak?¶
Boshlang‘ich darajada quyidagicha eslab qolish mumkin:
for¶
Takrorlanish soni ma'lum bo‘lsa.
Masalan:
10 marta takrorlash.
while¶
Shart bajarilguncha takrorlash kerak bo‘lsa.
Masalan:
foydalanuvchi to‘g‘ri javob berguncha.
do while¶
Kod kamida bir marta bajarilishi kerak bo‘lsa.
Masalan:
menyuni kamida bir marta ko‘rsatish.
Amaliy mashqlar¶
1-mashq¶
for yordamida:
1
2
3
...
20
raqamlarini chiqaring.
2-mashq¶
for yordamida 1 dan 20 gacha bo‘lgan juft sonlarni chiqaring.
3-mashq¶
while yordamida 10 dan 1 gacha bo‘lgan sonlarni chiqaring.
4-mashq¶
1 dan 100 gacha bo‘lgan sonlar yig‘indisini toping.
Natija:
5050
bo‘lishi kerak.
5-mashq¶
Foydalanuvchidan son oling.
while yordamida 1 dan shu songacha bo‘lgan sonlarni chiqaring.
Masalan:
Son: 5
Natija:
1
2
3
4
5
Muhim narsalarni eslab qoling¶
Sikl bir xil kodni bir necha marta bajarish uchun ishlatiladi.
for — takrorlanish soni ma'lum bo‘lganda qulay.
while — shart asosida takrorlash uchun ishlatiladi.
do while — kodni kamida bir marta bajaradi.
break — siklni to‘xtatadi.
continue — joriy takrorlashni tashlab, keyingisiga o‘tadi.
Eng ko‘p ishlatiladigan sikllar:
for
while
do while
Sikllarni yaxshi tushunish juda muhim, chunki ular deyarli barcha katta dasturlarda ishlatiladi.