search

Цикл for

Итак, общий формат записи цикла for для многократного выполнения одной инструкции имеет следующий вид.

for(инициализация; выражение; инкремент) инструкция;

Если цикл for предназначен для многократного выполнения не одной инструкции, а программного блока, то его общий формат выглядит так.

fоr (инициализация; выражение; инкремент)
{
последовательность инструкций
}

#include <iostream>
#include <cmath>
using namespace std;
int main(){

	int num;
	double sq_root;

	 for(num = 1; num < 100; num++) {
	  sq_root = sqrt((double) num); // Эта функция возвращает значение квадратного корня из своего аргумента.
	   cout << num << " " << sq_root << '\n';
	 }

return 0;
}

Управляющая переменная цикла for может изменяться как с положительным, так и с отрицательным приращением, причем величина этого приращения также может быть любой.


	

Например

#include <iostream> using namespace std; int main() { int i; for(i=100; i>=-100; i=i-5) cout << i << ' '; return 0; }

Важно понимать, что условное выражение всегда тестируется в начале выполнения цикла for. Это значит, что если первая же проверка условия даст значение ЛОЖЬ, код тела

цикла не выполнится ни разу. Вот пример:

for(count=10; count<5; count++)

Бесконечный цикл for

Бесконечный цикл — это цикл, который никогда не заканчивается. Оставив пустым условное выражение цикла for, можно создать бесконечный цикл (цикл, который никогда не заканчивается). Способ создания такого цикла показан на примере следующей конструкции цикла for.

for(;;)
{
//...
}

Цикл while

while(выражение) инструкция;

Здесь под элементом инструкция понимается либо одиночная инструкция, либо блок инструкций. Работой цикла управляет элемент выражение, который представляет собой любое допустимое С++-выражение. Элемент инструкция выполняется до тех пор, пока условное выражение возвращает значение ИСТИНА. Как только это выражение становится ложным, управление передается инструкции, которая следует за этим циклом.


/* Эта программа выводит все печатаемые символы, включая
расширенный набор символов, если таковой существует.
*/
#include <iostream>
using namespace std;

int main(){

 unsigned char ch;
 ch = 32;
 while(ch) {
  cout << ch;
  ch++;
 }

return 0;
}

Тело while-цикла может вообще не содержать ни одной инструкции. Вот пример:


srand(time(NULL)); 
while(rand() != 100);
Этот цикл выполняется до тех пор, пока случайное число, генерируемое функцией
rand(), не окажется равным числу 100

Цикл do-while

Цикл do-while — это единственный цикл, который всегда делает итерацию хотя бы один раз

В отличие от циклов for и while, в которых условие проверяется при входе, цикл do-while проверяет условие при выходе из цикла. Это значит, что цикл do-while всегда выполняется хотя бы один раз. Его общий формат имеет такой вид.


do {
инструкции;
}while(выражение);

Несмотря на то что фигурные скобки необязательны, если элемент инструкции состоит только из одной инструкции, они часто используются для улучшения читабельности конструкции do-while, не допуская тем самым путаницы с циклом while. Цикл do-while выполняется до тех пор, пока остается истинным элемент выражение, который представляет собой условное выражение


В следующей программе цикл do-while выполняется до тех пор, пока пользователь не
введет число 100.
#include <iostream>
using namespace std;
int main()
{
int num;
do {
cout << "Введите число (100 - для выхода): ";
cin >> num;
}while(num != 100);
return 0;
}

Использование инструкции continue

Инструкция continue позволяет немедленно перейти к выполнению следующей итерации цикла.


#include <iostream>
using namespace std;

int main()
{
 int x;
 for(x=0; x<=100; x++) {
 if(x%2) continue;
  cout << x << ' ';
 }
return 0;
}

Использование инструкции break для выхода из цикла

Инструкция break позволяет немедленно выйти из цикла.


#include <iostream>
using namespace std;

int main()
{
 int t;
 // Цикл работает для значений t от 0 до 9, а не до 100!
 for(t = 0; t < 100; t++) {
 if(t == 10){
	 break;	//Если t = 10 ТО ЦИКЛ завершен!
 }
 cout << t << ' ';
 }
return 0;
}