Oldingi darsda biz sikllar bilan tanishdik, for sikli nima ekanini va undan qanday foydalanishni o'rgandik. Bugun esa yana bir, juda ko'p ishlatiladigan siklni ko'ramiz, u while deb ataladi.
while sikli dasturda amallarni takrorlashning yana bir usuli. U davom etish sharti rost bo'lib turgan vaqt mobaynida ma'lum buyruqlarni yoki kod blokini qayta-qayta bajarishga imkon beradi.
while siklining sintaksisi quyidagicha:
while siklida bitta asosiy qism bor:
Keling, 1 dan 5 gacha sonlarni chiqaradigan while sikliga qaraymiz:
Bu misolda biz i o'zgaruvchisini e'lon qilib, boshlang'ich qiymatini 1 ga teng qildik. Keyin while orqali i <= 5 shartini tekshiramiz. Agar shart rost bo'lsa, sikl ichidagi kod bajariladi. Sikl ichida i qiymatini chiqaramiz va i++ operatori yordamida uni 1 taga oshiramiz.
Agar bu kodni ishga tushirsak, u 1 dan 5 gacha sonlarni chiqaradi:
E'tibor bering: for siklidan farqli ravishda, bu yerda shart qanday o'zgarishini sikl tanasi ichida o'zimiz nazorat qilishimiz kerak. Masalan, agar i++ ni yozishni unutib qo'ysak, i doimo 1 bo'lib qoladi va sikl cheksiz ishlaydi.
while sikli ayniqsa shunda foydali bo'ladiki, biz oldindan nechta marta takrorlash kerakligini bilmaymiz.
Masalan, foydalanuvchi manfiy son kiritmaguncha son kiritishni davom ettirish uchun while dan foydalanish mumkin:
Bu misolda biz while sikli yordamida foydalanuvchidan son so'rashni u manfiy son kiritmaguncha davom ettiramiz. Har iteratsiyada son kiritishni so'raymiz va cin orqali o'qiymiz. Foydalanuvchi manfiy son kiritishi bilan shart endi rost bo'lmaydi va sikl to'xtaydi.
Muhim: har doim sikl sharti oxir-oqibat yolg'on bo'lishiga ishonch hosil qiling, aks holda cheksiz sikl paydo bo'ladi:
while sikli dasturlarda moslashuvchan takrorlashlar yaratish uchun kuchli vosita, ayniqsa to'xtash sharti oddiy hisoblagichga bog'liq bo'lmagan holatlarda.
while (condition) {
// Har bir iteratsiyada bajariladigan kod
}
int i = 1;
while (i <= 5) {
cout << i << " ";
i++;
}
1 2 3 4 5
int number;
while (number >= 0) {
cout << "Enter a number: ";
cin >> number;
}
// 1 dan 10 gacha sonlarni chiqarish
for (int i = 1; i <= 10; i++) {
cout << i << " ";
}
// 0 kiritilmaguncha sonlarni o'qish
int num;
while (num != 0) {
cout << "Enter a number (0 to exit): ";
cin >> num;
if (num != 0) {
cout << "You entered: " << num << endl;
}
}
#include <iostream>
using namespace std;
int main() {
cout << "Program for summing numbers" << endl;
cout << "Enter numbers (negative number to finish):" << endl;
int number = 0;
int sum = 0;
while (number >= 0) {
cout << "Enter a number: ";
cin >> number;
if (number >= 0) {
sum += number;
cout << "Current sum: " << sum << endl;
}
}
cout << "Final sum: " << sum << endl;
cout << "Program completed!" << endl;
return 0;
}
// YOMON - cheksiz sikl
int i = 1;
while (i <= 5) {
cout << i << " ";
// i++ yozishni unutdik, shuning uchun i doimo 1
}
// YAXSHI - sikl tugaydi
int i = 1;
while (i <= 5) {
cout << i << " ";
i++; // Shartga ta'sir qiladigan o'zgaruvchini o'zgartirishni unutmang
}