C++ while va do...while sikli
Kompyuter dasturlashda kod blokini takrorlash uchun sikllardan foydalaniladi.
Masalan, biz xabarni 100 marta ko'rsatmoqchimiz deylik. Keyin chop etish buyrug'ini 100 marta yozish o'rniga, biz sikldan foydalanishimiz mumkin.
Bu oddiy misol edi; biz looplardan samarali foydalanish orqali dasturlarimizda yanada samaraliroq va murakkablikka erishishimiz mumkin.
C++ da 3 turdagi sikllar mavjud.
for loopwhile loopdo...while loopOldingi qo'llanmada biz C++ for loop haqida bilib oldik. Bu erda biz while va do...while sikllari haqida bilib olamiz.
while siklining sintaksisi:
while (condition) {
// sikl tanasi
}
Bu yerga,
-while sikli condition ni baholaydi
condition true ga baholansa, while sikli ichidagi kod bajariladi.condition qayta baholanadi.condition false bo'lguncha davom etadi.condition false ga baholanganda, sikl tugaydi.conditions haqida ko'proq ma'lumot olish uchun C++ Relational and Logical Operators ga tashrif buyuring.
Flowchart of C++ while loop

// 1 dan 5 gacha raqamlarni chop etish uchun C++ dasturi
#include <iostream>
using namespace std;
int main() {
int i = 1;
// while sikli 1 dan 5 gacha
while (i <= 5) {
cout << i << " ";
++i;
}
return 0;
}
Chiqish
1 2 3 4 5
Mana dastur qanday ishlaydi.
Takrorlash o'zgaruvchisi i <= 5 1-harakat i = 1 true 1 chop etiladi va i 2 ga oshiriladi. 2-chi i = 2 true 2 chop etiladi va i 3 ga oshiriladi. 3- i = 3 true 3 chop etiladi va i 4 ga oshiriladi 4- i = 4 true 4 chop etiladi va i 5 ga oshiriladi. 5-chi i = 5 true 5 chop etildi va i 6 ga oshirildi. 6- i = 6 false Loop tugatildi
// musbat sonlar yig'indisini topish dasturi
// agar foydalanuvchi salbiy raqamni kiritsa, sikl tugaydi
// kiritilgan manfiy raqam yig'indiga qo'shilmaydi
#include <iostream>
using namespace std;
int main() {
int number;
int sum = 0;
// foydalanuvchidan ma'lumot oling
cout << "Enter a number: ";
cin >> number;
while (number >= 0) {
// barcha ijobiy raqamlarni qo'shing
sum += number;
// agar raqam ijobiy bo'lsa, yana kiriting
cout << "Enter a number: ";
cin >> number;
}
// summani ko'rsatish
cout << "\nThe sum is " << sum << endl;
return 0;
}
Chiqish
Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25
Ushbu dasturda foydalanuvchidan raqamni kiritish taklif qilinadi, u o'zgaruvchan raqamda saqlanadi.
Raqamlar yig'indisini saqlash uchun biz o'zgaruvchan summani e'lon qilamiz va uni 0 qiymatiga ishga tushiramiz.
while sikli foydalanuvchi salbiy raqam kiritmaguncha davom etadi. Har bir iteratsiya davomida foydalanuvchi kiritgan raqam sum o'zgaruvchisiga qo'shiladi.
Agar foydalanuvchi manfiy raqamni kiritsa, sikl tugaydi. Nihoyat, umumiy summa ko'rsatiladi.
do...while sikli while siklining varianti bo‘lib, bitta muhim farqga ega: do...while siklining tanasi condition tekshirilishidan oldin bir marta bajariladi.
Uning sintaksisi:
do {
// sikl tanasi
}
while (condition);
Bu yerga,
condition baholanadi.condition true ga baholansa, do iborasi ichidagi siklning tanasi yana bajariladi.condition yana bir bor baholanadi.condition true ga baholansa, do iborasi ichidagi siklning tanasi yana bajariladi.condition false ga baholanmaguncha davom etadi. Keyin sikl to'xtaydi.Flowchart of C++ do...while loop

// 1 dan 5 gacha raqamlarni chop etish uchun C++ dasturi
#include <iostream>
using namespace std;
int main() {
int i = 1;
// do...while 1 dan 5 gacha sikl
do {
cout << i << " ";
++i;
}
while (i <= 5);
return 0;
}
Chiqish
1 2 3 4 5
Mana dastur qanday ishlaydi.
Takrorlash o'zgaruvchisi i <= 5 Harakat i = 1 belgilanmagan 1 chop etildi va i 2 ga oshirildi 1- i = 2 true 2 chop etiladi va i 3 ga oshiriladi 2- i = 3 true 3 chop etiladi va i XCODEX 4 ga ko'paytiriladi va XCODEX 4 ga oshiriladi. i 5 ga oshirildi 4- i = 5 true 5 chop etildi va i 6 5- i = 6 false ga oshirildi Loop tugatildi
// musbat sonlar yig'indisini topish dasturi
// Agar foydalanuvchi salbiy raqamni kiritsa, sikl tugaydi
// kiritilgan manfiy raqam yig'indiga qo'shilmaydi
#include <iostream>
using namespace std;
int main() {
int number = 0;
int sum = 0;
do {
sum += number;
// foydalanuvchidan ma'lumot oling
cout << "Enter a number: ";
cin >> number;
}
while (number >= 0);
// summani ko'rsatish
cout << "\nThe sum is " << sum << endl;
return 0;
}
Chiqish 1
Enter a number: 6
Enter a number: 12
Enter a number: 7
Enter a number: 0
Enter a number: -2
The sum is 25
Bu erda do...while sikli foydalanuvchi manfiy raqam kiritmaguncha davom etadi. Raqam manfiy bo'lsa, sikl tugaydi; salbiy raqam sum o'zgaruvchisiga qo'shilmaydi.
Chiqish 2
Enter a number: -6
The sum is 0.
Agar foydalanuvchi salbiy raqam kiritsa, do...while siklining tanasi faqat bir marta ishlaydi.
Agar siklning condition har doim true bo'lsa, sikl cheksiz vaqt davomida ishlaydi (xotira to'lguncha). Masalan,
// cheksiz while sikli
while(true) {
// sikl tanasi
}
Mana cheksiz do...while siklining misoli.
// cheksiz do...while sikli
int count = 1;
do {
// sikl tanasi
}
while(count == 1);
Yuqoridagi dasturlarda condition har doim true bo'ladi. Demak, sikl tanasi cheksiz vaqt davomida ishlaydi.
for sikli odatda takrorlar soni ma'lum bo'lganda ishlatiladi. Masalan,
// Ushbu sikl 5 marta takrorlanadi
for (int i = 1; i <=5; ++i) {
// sikl tanasi
}
Bu erda biz bilamizki, for-loop 5 marta bajariladi.
Biroq, while va do...while sikllari odatda takrorlashlar soni noma'lum bo'lganda ishlatiladi. Masalan,
while (condition) {
// sikl tanasi
}
Shuningdek o'qing:
-C++ Program to Display Fibonacci Series -C++ Program to Find GCD -C++ Program to Find LCM