Цикл while (цикл пока) нужен для выполнения одинаковых или очень похожих действий. Слово while переводится как "пока", а цикл while выполняется пока верно некоторое условие.
Цикл while можно записать, например, так:
1 2 3 4 |
while (проверка условия завершения цикла) { повторяемые в цикле действия } |
Рассмотрим пример программы, которая печатает числа пока они меньше 20
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
//Подключаем функции ввода/вывода - cout. #include <iostream.h> //Подключаем getch. #include <conio.h> //Основная функция программы. int main() { //Объявляем целую переменную. int i; //Присваиваем i значение 1. i = 1; //Пока i < 20, выполняем цикл. while ( i < 20 ) { //Печатаем i. cout<<i<<" "; //Увеличиваем i на 1. i++; } // Ожидаем нажатия пользователем любой клавиши. getch(); /* Считается "хорошим тоном", когда программа после своего успешного завершения выдаёт 0 в операционную систему. 0 не является значением выражения! */ return 0; } |
Программа выводит на экран:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Разберём подробнее работу цикла из этой программы:
15 16 17 18 19 20 21 |
while ( i < 20 ) { //Печатаем i. cout<<i<<" "; //Увеличиваем i на 1. i++; } |
Вначале, i равно 1, поэтому i меньше 20. Программа входит в цикл, печатает 1 и увеличивает i на 1.
Теперь i равно 2. Опять i меньше 20. Программа опять печатает, теперь уже 2 и увеличивает i на 1.
Так происходит пока i не станет равно 20. При i = 20, условие i < 20 уже не выполняется. И цикл while завершает свою работу.
Что делать, я хочу чтобы у переменной i было последнее значение 0, но почему то значение i уменьшается только на 1 хотя я вроде бы сделал цикл.
Вот код :
#include
using namespace std;
int main()
{
setlocale(0, "");
int i, w;
int c = 60;
cout << "Таймер" <> i;
cin >> w;
while (w > 0) {
w--;
cout << i << " " << w < 0) {
i --;
while (c > 0) {
c--;
cout << i << " " << c << endl;
}
}
return 0;
}
У Вас нет цикла по i.
Рядом с i у Вас cout, а не while.
У Вас циклы только по w и c.
Как вариант, чтобы лучше понять, что происходит, можете попробовать пошаговую отладку.