14 / 90

C++ while and do...while Loop

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.

  1. for loop
  2. while loop
  3. do...while loop

Oldingi qo'llanmada biz C++ for loop haqida bilib oldik. Bu erda biz while va do...while sikllari haqida bilib olamiz.

C++ while loop

while siklining sintaksisi:

example.cpp
while (condition) {
    // sikl tanasi
}

Bu yerga,

-while sikli condition ni baholaydi

  • Agar condition true ga baholansa, while sikli ichidagi kod bajariladi.
  • condition qayta baholanadi.
  • Bu jarayon 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.

while Loop sxemasi

Flowchart of C++ while loop

C++ while loop flowchart

1-misol: 1 dan 5 gacha raqamlarni ko'rsatish

example.cpp
// 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

kod
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

2-misol: Faqat musbat sonlar yig‘indisi

example.cpp
// 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

kod
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.

C++ do... while Loop

do...while sikli while siklining varianti bo‘lib, bitta muhim farqga ega: do...while siklining tanasi condition tekshirilishidan oldin bir marta bajariladi.

Uning sintaksisi:

example.cpp
do {
   // sikl tanasi
}
while (condition);

Bu yerga,

  • Dastlab siklning tanasi bajariladi. Keyin condition baholanadi.
  • Agar condition true ga baholansa, do iborasi ichidagi siklning tanasi yana bajariladi.
  • condition yana bir bor baholanadi.
  • Agar condition true ga baholansa, do iborasi ichidagi siklning tanasi yana bajariladi.
  • Bu jarayon condition false ga baholanmaguncha davom etadi. Keyin sikl to'xtaydi.

Do...while Loop sxemasi

Flowchart of C++ do...while loop

C++ do...while loop flowchart

3-misol: 1 dan 5 gacha raqamlarni ko'rsatish

example.cpp
// 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

kod
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

4-misol: Faqat musbat sonlar yig‘indisi

example.cpp
// 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

kod
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

kod
Enter a number: -6
The sum is 0.

Agar foydalanuvchi salbiy raqam kiritsa, do...while siklining tanasi faqat bir marta ishlaydi.

Cheksiz while sikli

Agar siklning condition har doim true bo'lsa, sikl cheksiz vaqt davomida ishlaydi (xotira to'lguncha). Masalan,

example.cpp
// cheksiz while sikli
while(true) {
    // sikl tanasi
}

Mana cheksiz do...while siklining misoli.

example.cpp
// 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 vs while sikllari

for sikli odatda takrorlar soni ma'lum bo'lganda ishlatiladi. Masalan,

example.cpp
// 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,

example.cpp
while (condition) {
    // sikl tanasi
}

Shuningdek o'qing:

-C++ Program to Display Fibonacci Series -C++ Program to Find GCD -C++ Program to Find LCM