Цикл «foreach»

Якщо ви колись програмували на інших мовах програмування, то могли зустрічатися з таким циклом як

Розберімось, що це за цикл, як він працює та коли його слід використовувати.


Цикл є альтернативою (чи можна навіть сказати різновидом) циклу Він використовується, тоді коли ми маємо пройтися по всім елементам масиву.

Загальний запис циклу є таким:

		
		for (тип_змінної ім'я_змінної : ім'я_масиву)
		{
			Дії;
		}
		
	

Де:

• Тип змінної – це тип елементів масиву. Дуже часто використовують тип щоб не помилитися з даним типом. Це особливо зручно, коли елементами масиву виступають якісь (класи).

• Ім’я змінної – це змінної, яка буде використовуватися в якості Вона є як альтернатива запису Тому, саме з даним елементом ми будемо виконувати різні дії.

• Ім’я масиву – це є масив по якому ми будемо проходитися за допомогою циклу.


Розглянемо приклад програми, де використаємо стандартний цикл та цикл записаний в стилі

		
			#include  <iostream>

			int main()
			{
				float mas[5] = { 6.5, 7.4, 8.3, 9.2, 1.1 };

				std::cout << "for:\n";
				for (int i = 0; i < 5; i++)
				{
					std::cout << mas[i] << " ";
				}

				std::cout << "\n\nforeach:\n";
				for (auto elem : mas)
				{
					std::cout << elem << " ";
				}
			}
		
	

Отже, цикл використовуємо, коли ми маємо пройтися по всіх елементах масиву. При цьому нам навіть не потрібно вказувати початкову та кінцеву точку (логічно ж бо беремо всі елементи) і не вказуємо крок перебору.

Якщо ж ви хочете за допомогою циклу надати або змінити значення елементів, то при створенні циклу перед вам варто додати символ Таким чином, ви будете створювати посилання на свій масив. Це виглядатиме так:

		
			for (тип_змінної &ім'я_змінної : ім'я_масиву)
			{
				Дії;
			}
		
	

Перегляньте наступний приклад:

		
			#include <iostream>

			int main()
			{
				int mas[5];
				int n = 2;

				for (auto &elem : mas)
				{
					elem = n * n + 1;
					n++;
				}

				for (auto elem : mas)
				{
					std::cout << elem << " ";
				}
			}
		
	

Зверніть увагу, що при створенні масиву ми вказати його розмір. Бо, в іншому випадку цикл (як і інший) не працюватиме належним чином.