Оператор безусловного перехода goto
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Формат использования: goto <метка>;

В теле той же функции должна присутствовать ровно одна конструкция вида: 

<метка>: <оператор>;

Оператор goto передает управление на помеченный <оператор>. <Метка> — это обычный идентификатор, областью видимости которого является функция, в теле которой он задан. Использование goto приводит только к усложнению структуры программы и затруднению отладки. Применение goto нарушает принципы структурного и модульного программирования, по которым все блоки, из которых состоит программа, должны иметь только один вход и один выход.

4) Оператор выхода break. Оператор break используется внутри операторов цикла или switch для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находится break. 

Пример использования break показан в программе про слово «рубль».

 

………………………………………

 

5) Оператор continue. Оператор перехода к следующей итерации цикла continue пропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации. 

6) Оператор возврата return. Оператор выхода из функции return завершает выполнение функции и передает управление в точку ее вызова. Формат оператора: 

return [ выражение ]; 

Выражение должно иметь скалярный тип. Если тип возвращаемого функцией значения описан как void, выражение return должно отсутствовать.

Операторы цикла

Операторы цикла используются для организации многократно повторяющихся вычислений. Любой цикл состоит из тела цикла, то есть тех операторов, которые выполняются несколько раз, начальных установок, модификации параметра цикла и проверки условия продолжения выполнения цикла.

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

Переменные, изменяющиеся в теле цикла и используемые при проверке условия продолжения, называются параметрами цикла. Целочисленные параметры цикла, изменяющиеся с постоянным шагом на каждой итерации, называются счетчиками цикла.

Начальные установки могут явно не присутствовать в программе, их смысл состоит в том, чтобы до входа в цикл задать значения переменным, которые в нем используются. 

Цикл завершается, если условие его продолжения не выполняется. Возможно принудительное завершение как текущей итерации, так и цикла в целом. Для этого служат операторы break, continue, return и goto.

Передавать управление извне внутрь цикла не рекомендуется. Для удобства, а не по необходимости, в C++ есть три разных оператора цикла —while, do while и for.

Цикл с параметром ( for )

Цикл с параметром имеет следующий формат:

for (<инициализация>; <выражение>; <модификации>) <оператор>;

<Инициализация> используется для объявления и присвоения начальных значений величинам, используемым в цикле. В этой части можно записать несколько операторов, разделенных запятой (операцией «последовательное выполнение»), например, так:

for (int 1 = 0, j = 2, ... 

int к, m;

for (k = 1, m = 0; ...

Областью действия переменных, объявленных в части инициализации цикла, является цикл. Инициализация выполняется один раз в начале исполнения цикла.

<Выражение> определяет условие выполнения цикла: если его результат, приведенный к типу bool, равен true, цикл выполняется. Цикл с параметром реализован как цикл с предусловием.

<Модификации> выполняются после каждой итерации цикла и служат обычно для изменения параметров цикла. В части модификаций можно записать несколько операторов через запятую. Простой или составной оператор представляет собой тело цикла. Любая из частей оператора for может быть опущена (но точки с запятой надо оставить на своих местах).

Пример. Оператор, вычисляющий сумму чисел от 1 до 100:

for (int i = 1, s = 0; i<=100; i++) s += 1;

Пример. Программа печатает таблицу значений функции y=x^2+1 во введенном диапазоне (задача на табулирование функции):

#include <stdio.h>

void main()

{clrscr();

float Xn, Xk, Dx, X;

printf("Введите диапазон и шаг изменения аргумента: " ):

scanf(“%f%f%f", &Хn, &Хк, &Dx):

printf(“I X I Y I\n"):

for (X = Xn; X<=Xk; X += Dx)

printf(“I %5.2f I %5.2f I\ n” , X, X*X + 1):

getch();

}

Пример (программа находит все делители целого положительного числа):

#include <iostream.h>

#include <conio.h>

void main()

{

int num, i, div:

cout << "\nВведите число --> ";

cin >> num;

for (i = num / 2, div = 2; div <= i ; div++)

if (!(num % div)) cout << div <<"\n";                              //выделение остатка от деления

getch();

}

Пример. Программа вычисляет значение гиперболического синуса  от вещественного аргумента х с заданной точностью eps с помощью разложения в бесконечный ряд.

Вычисление заканчивается, когда абсолютная величина очередного члена ряда, прибавляемого к сумме, станет меньше заданной точности.

#include <iestream.h>

#include <math.h>

#include <conio.h>

void main()

{

const int Maxiter = 500;                                       // ограничитель количества итераций

double x, eps;

cout << "\nВведите аргумент и точность: ";

сin >> x >> eps;

int flag = 1;                                                           // признак успешного вычисления true

double у = x, ch = х;                                            // сумма и первый член ряда

for (int n = 0; fabs(ch) > eps; n++)

{

ch *= x * x /(2 * n + 2)/(2 * n + 3);          // очередной член ряда

у += ch;

if (n > Maxiter)

{

cout « "\nРяд расходится!";

flag = 0;                                        //false

break;

}

}

if (flag) cout << "\nЗначение функции: " << у;

getch();

}

 

Замечание.

1) Любой цикл for может быть приведен к эквивалентному ему циклу while и наоборот по следующей схеме:

 

for (<действие_1>; < действие_2>; < действие_3>) < действие_1>; while (<действие_2>) { < действие_3> }

 

Дата: 2019-02-02, просмотров: 297.