C++ do...while цикъл с примери
Какво е do-while цикъл?
Цикълът do-while итерира част от C++ програмирайте няколко пъти. В цикъла do-while тестовият израз се добавя в долната част на цикъла. Тялото на цикъла идва преди тестовия израз. Ето защо тялото на цикъла трябва да се изпълни веднъж, дори когато тестовият израз се изчисли като false при първия тест.
Кога да използвам do-while цикъл?
Цикълът do-while трябва да се използва, когато броят на итерациите не е фиксиран и цикълът трябва да се изпълни поне веднъж. The C++ компилатор първо изпълнява тялото на цикъла, преди да оцени условието. Това означава, че цикълът трябва да върне резултат. Такъв е случаят, дори когато тестовото условие се оценява като невярно при първата оценка. Тъй като тялото на цикъла вече е изпълнено, то трябва да върне резултата.
Синтаксис
Основният синтаксис на C++ do while цикълът е както следва:
do{ //code }while(condition);
Условието е тестов израз. Трябва да е вярно, за да се изпълни цикълът. { и } маркират тялото на do while цикъла. То идва преди условието. Следователно, той се изпълнява преди условието.
Как работи цикълът докато?
Обяснение на блок-схемата:
- Начало на do while цикъл.
- Тялото на do while цикъла.
- Тестовият израз или условие, което трябва да се оцени.
- Ако тестовият израз е верен, C++ компилаторът изпълни тялото на do while цикъл.
- Ако тестовият израз е false, the C++ компилаторът изпълнява изразите след тялото на цикъла.
- Инструкции, които идват след тялото на цикъла.
Пример 1
#include <iostream> using namespace std; int main() { // Local variable int x = 1; do { cout << "X is: " << x << endl; x = x + 1; } while (x < 5); return 0; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Коментар. The C++ компилаторът ще пропусне това.
- Деклариране на целочислена променлива x и присвояване на стойност 1.
- Създаване на do-while цикъл. { маркира началото на тялото на цикъла.
- За да отпечатате стойността на променлива x заедно с друг текст на конзолата. Краят е a C++ ключова дума означава краен ред.
- Увеличаване на стойността на x с 1 след всяка итерация.
- Край на тялото на цикъла. Тестовият израз е добавен в края на тялото на цикъла. Той тества дали стойността на x е по-малка от 5.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Пример 2
#include <iostream> using namespace std; int main() { int num, sum = 0; do { cout << "Enter a number: "; cin >> num; sum += num; } while (num != 0); cout << "Sum is " << sum; return 0; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата.
- { маркира началото на тялото на функцията main().
- Деклариране на две цели променливи, num и sum. Променливата sum е инициализирана на 0.
- Създаване на do-while цикъл. { маркира началото на тялото на цикъла.
- Отпечатване на текста „Въведете номер:“ на конзолата.
- Четене на потребителски вход от конзолата и съхраняване на стойността в променлива num. Cin (конзолен вход) е функция, която чете въведеното от потребителя.
- Добавяне на стойността на num към стойността на sum и съхраняване на резултата в променлива sum.
- } маркира края на тялото на цикъла. Тестовият израз е добавен в края на тялото на цикъла. Той тества дали стойността, въведена от потребителя, за да се увери, че не е 0. != е не е равно на оператора. Ако потребителят въведе 0, цикълът трябва да приключи.
- Отпечатване на стойността на променлива сума на конзолата заедно с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Вложен Do While цикъл
In C++, за нас е възможно да създадем един do-while цикъл в друг do-whole цикъл. Това води до вложен do-while цикъл.
Синтаксис
do{ statement(s) do{ statement(s) }while(condition); statement(s) }while(condition);
Първият оператор do обозначава частта do от външния do-while цикъл.
Вторият оператор do обозначава do частта от вътрешния do-while цикъл.
Първият оператор while обозначава тестовото условие за вътрешния цикъл.
Вторият оператор while обозначава тестовото условие за външния цикъл.
Как работи цикълът Nested Do While
Вложеният do while цикъл работи по следния начин:
Стъпка 1: Инициализацията се изпълнява първо и веднъж.
Стъпка 2: Изявленията (do) се изпълняват веднъж.
Стъпка 3: Тестовият израз е оценка чрез контрол на потока.
Стъпка 4: Ако е вярно, вътрешният цикъл се изпълнява.
Стъпка 5: Изявлението(ите) за актуализиране се актуализират.
Стъпка 6: Процесът се изпълнява многократно, докато тестовият израз стане неверен.
Стъпка 7: Когато тестовият израз стане неверен, вътрешният цикъл се излиза и управлението преминава към външния цикъл.
Стъпка 8: Условието на теста се оценява отново.
Стъпка 9: Ако е вярно, операторът(ите) се изпълняват, за да върнат false.
Стъпка 10: Изпълнението на цикъл спира и управлението прескача към изрази след цикъл.
Пример
#include <iostream> using namespace std; int main() { int a = 1; do { int b = 1; do { cout << a << "\n"; b++; } while (b <= 3); a++; } while (a <= 3); }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на целочислена променлива a и присвояване на стойност 1.
- Създаване на външния do-while цикъл. { маркира началото на тялото на външния цикъл.
- Деклариране на целочислена променлива b и присвояване на стойност 1.
- Създаване на вътрешния do-while цикъл. { маркира началото на тялото на вътрешния цикъл.
- За да отпечатате стойността на променлива a на конзолата. „\n“ е знак за нов ред, който премества курсора на мишката на следващия ред.
- Увеличаване на стойността на b с 1 след всяка итерация.
- Край на тялото на вътрешния контур. Тестовият израз е добавен в края на тялото на цикъла. Той тества дали стойността на b е по-малка или равна на 5.
- Увеличаване на стойността на a с 1 след всяка итерация.
- Край на тялото на външния контур. Тестовият израз е добавен в края на тялото на цикъла. Той тества дали стойността на a е по-малка или равна на 3.
- Край на тялото на функцията main().
Oбобщение
- Цикълът do-while изпълнява част от кода няколко пъти.
- Трябва да се използва, когато броят на повторенията не е фиксиран.
- В цикъла do-while тялото на цикъла идва преди тестовия израз.
- Тялото на цикъла се изпълнява поне веднъж, дори ако тестовият израз стане неверен.
- Този цикъл трябва да се използва, когато броят на повторенията не е фиксиран.
- Do while цикълът може да се изпълнява произволен брой пъти, при условие че условието е вярно.
- Условието се оценява веднъж след всяка итерация.
- Резултатът от оценката на състоянието определя действието, което трябва да се предприеме.
- Ако условието е вярно, цикълът изпълнява тялото.
- Изпълнението на цикъла спира незабавно, като условието се оценява като невярно.
- Тъй като тялото на цикъла do while вече е изпълнено, то трябва да върне резултата.