Цикл «for»
Ми вже розглянули як працювати з циклом Цикл працює поки виконується певна умова. Зазвичай його використовують, якщо завчасно не відомо скільки разів має виконуватися даний цикл.
Якщо завчасно відомо скільки разів має виконатися цикл, то використовують цикл
Коли використовують цикл у круглих дужках записують три умови перераховані через крапку з комою
1. Умова початку циклу. Тобто, від якого значення розпочинається цикл. Зазвичай це ціле число.
2. Умова завершення циклу.
3. Крок циклу.
Після чого у фігурних дужках вказують дії які мають виконуватися під час даного циклу.
for(умова початку; умова завершення; крок)
{
Дії;
}
Якщо ви звернули увагу, то цикли та на справді працюють за подібним принципом і являються альтернативою один одному.
Розглянемо як можна працювати із циклом «for».
Припустимо ми хочемо вивести всі не парні числа, що знаходяться між та включно.
Для цього в якості початку відліку ми можемо відразу в циклі створити змінну зі значенням Ця ж змінна буде використовуватися для задання умови завершення та кроку. Далі нам необхідно вказати умову завершення. Тому, вказуємо, що наш цикл буде продовжуватися поки змінна є меншою-рівною за Останнім етапом є задання кроку. Враховуючи, що ми маємо вивести всі не парні числа, то крок потрібно робити Адже, дробові числа йдуть через одне.
Отже, наший цикл виглядатиме так:
#include <iostream>
int main()
{
for(int i = 5; i <= 11; i += 2)
{
//int i = 5 – початкова умова (умова відліку)
//i <= 11 – умова завершення (при якій цикл завершується)
//i += 2 – крок циклу
//дії, що виконуються в циклі
std::cout << "i =" << i << std::endl;
}
return 0;
}
Початок відліку, умову завершення, крок може вказувати користувач. Напишемо програму яка буде виводити числа з певного проміжку та з певним кроком.
#include <iostream>
int main()
{
int a; //початок відліку
int b; //умова завершення
int c; //крок
std::cin >> a >> b >> c;
for(int i = a; i < b; i += c)
{
std::cout << "i = " << i << std::endl;
}
return 0;
}
При використані циклу ви можете задати будь-яку умову окремо. Тобто, можна їх вказати не у круглих дужках. Або взагалі нічого не вказувати і отримати безкінечний цикл. Якщо ви пропускаєте якусь умову, то ви на її місці нічого не записуєте але все одно розділяєте умови
Початок відліку має вказувати перед циклом.
#include <iostream>
int main()
{
int i = 5; // початок відліку вказуємо раніше
for( ; i <= 11; i += 2)
{
//int i = 5 – початкова умова (умова відліку)
//i <= 11 – умова завершення (при якій цикл завершується)
//i += 2 – крок циклу
//дії, що виконуються в циклі
std::cout << "i = " << i << std::endl;
}
return 0;
}
Крок має бути в середині циклу (бо отримаєте безкінечний цикл).
#include <iostream>
int main()
{
for(int i = 5; i <= 11; )
{
//int i = 5 – початкова умова (умова відліку)
//i <= 11 – умова завершення (при якій цикл завершується)
//i += 2 – крок циклу
//дії, що виконуються в циклі
std::cout << "i = " << i << std::endl;
i += 2; //крок вказуємо в середині циклу
}
return 0;
}
Умова завершення також має бути в середині циклу. В такій ситуації використовують ключове слово Використовуємо його аналогічно як у циклі
#include <iostream>
int main()
{
for(int i = 5; ; i += 2)
{
//int i = 5 – початкова умова (умова відліку)
//i <= 11 – умова завершення (при якій цикл завершується)
//i += 2 – крок циклу
//дії, що виконуються в циклі
if(i <= 11) //умову завершення вказуємо в середині циклу
{
break;
}
std::cout << "i = " << i << std::endl;
}
return 0;
}
Звісно, ви можете комбінувати всі ці можливості. Ви може їх записувати не у круглих дужках або взагалі не записувати.
Наприклад, якщо не вказувати жодної умови (виглядатиме ось так: то ви отримаєте безкінечний цикл.
#include <iostream>
int main()
{
for( ; ; ) //створюємо безкінечний цикл
{
std::cout << "Hello" << std::endl;
}
return 0;
}