C оператором break мы познакомились, когда изучали оператор множественного выбора switch. В теле оператора множественного выбора switch оператор break прерывал исполнение оператора switch. Когда оператор break выполняется в цикле, то досрочно прерывается исполнение оператора цикла, и управление передаётся следующему оператору после цикла. Разработаем программу с использованием оператора break. Программа печатает таблицу степеней двойки.
// break.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
// заголовочный файл <cmath> содержит прототип функции pow()
#include <cmath>
using namespace std;
int main(int argc, char* argv[])
{
for (int count = 0; count <= 10; count++) // начало цикла for
{
if ( count == 6)
break; // выход из цикла for
cout << "2^" << count << " = " << pow(2.0,count) << endl; // печать степени двойки
}
system("pause");
return 0;
}
В строке 6 подключён заголовочный файл содержащий прототипы основных математических функций. Сейчас нужно запомнить то, чтобы использовать функцию pow() необходимо подключить заголовочный файл <cmath>. Функция pow(a,b) возводит число а в степень b. В строке 11 записан заголовок цикла for. В цикле for объявлена переменная-счётчик count, значение которой меняется от 0 до 10 включительно. В строке 13 записан оператор условного выбора if, истинность условия которого запускает оператор break, который, в свою очередь, приводит к выходу из цикла for. В строке 15 запускается функция pow(). Условие продолжения цикла for будет истинно до тех пор, пока значение в переменной count <= 10. Тогда как, выход из цикла for произойдёт раньше, чем условие продолжения цикла станет ложным. Выход из цикла for выполнится, когда значение в переменной count станет равным шести. Результат работы программы показан на рисунке 1.
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 Для продолжения нажмите любую клавишу . . .
Рисунок 1 — Оператор break в С++
Из рисунка 1 видно, что таблица степеней двойки напечаталась, включительно, до пятой степени. Если убрать оператор условного выбора if, то напечатаются степени двойки, включительно до десятой (см. Рисунок 2).
// break.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <cmath> // заголовочный файл содержит прототип функции pow()
using namespace std;
int main(int argc, char* argv[])
{
for (int count = 0; count <= 10; count++) // начало цикла for
{
// if ( count == 6)
// break; // выход из цикла for
cout << "2^" << count << " = " << pow(2.0,count) << endl; // печать степени двойки
}
system("pause");
return 0;
}
В строках 12 и 13 мы закомментировали оператор условного выбора if, таким образом печатается таблица степеней двойки от нулевой и до 10-й степеней включительно.
2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 2^8 = 256 2^9 = 512 2^10 = 1024 Для продолжения нажмите любую клавишу . . .
Рисунок 2 — Оператор break в С++
Переделаем эту программу так, чтобы можно было обойтись без оператора break, то есть напишем эквивалент оператору break.
// break.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include <iostream>
#include <cmath> // заголовочный файл содержит прототип функции pow()
using namespace std;
int main(int argc, char* argv[])
{
for (int count = 0; count <= 10; count++) // начало цикла for
{
cout << "2^" << count << " = " << pow(2.0,count) << endl; // печать степени двойки
// эквивалент оператору break
if ( count == 5)
count = 11;
}
system("pause");
return 0;
}
Оператор условного выбора if теперь записан после строки 12, по этому изменилось условие в операторе if. Как только условие в операторе if станет истинным программа передаст управление строке 15. Тогда переменной count присвоится значение 11, и условие продолжения цикла for станет ложным.
Комментарии