Прерывание цикла

Бесконечный цикл можно создать преднамеренно, но тогда необходимо организовать в теле цикла прерывание цикла по условию выхода из цикла, используя операторы передачи управления break, goto, continue.

Оператор break (прерывать) вызывает завершение самого внутреннего включающего его оператора цикла по схеме:

while(1) /* бесконечный цикл */

{...; if (условие выхода)

break; /* прерывание цикла */

}

следующий оператор;

Оператор goto позволяет выйти за пределы операторов циклов любой глубины вложения в любое место программы.

Оператор continue (продолжить) позволяет пропустить оставшуюся часть тела цикла до закрывающей скобки (}) и начать новый цикл, то есть он не передает управление за пределы оператора цикла, в котором он находится, согласно схеме:

while (выражение)

{...; if (условие прерывания)

continue; /*прерывание текущего цикла */

операторы;

}

Во многих задачах количество повторений цикла задано или может быть вычислено до выполнения программы.

Пример. Организовать вывод четных чисел не больше 100.

Программа:

void main ()

{ int num = -1; /* начальное значение */

while (num < 100) /* условие цикла */

{ num ++; /* очередное число */

if (num % 2) /* нечетное число, если num%2!= 0 */

continue; /* переход к новому циклу */

printf(“%d ”, num); /* вывод четного числа */

}

}

Пример. Ввести натуральное число (N) и определить количество (K) и сумму его цифр (sum), например, для N = 215, K = 3, sum = 2+1+5=8. Идея алгоритма: в цикле, пока N не уменьшится до N = 0, для получения цифры младшего разряда используется операция деления по модулю 10 (M = N %10), а для уменьшения используется операция деления числа на 10 нацело (N = N / 10).

Программа:

# include<stdio.h>

# include<conio.h>

void main ()

{ long N; int K, sum, m; /* описание переменных */

clrscr (); /* очистка экрана */

printf (“Введите натуральное число: “);

scanf (‘‘%Ld’’, &N); /* ввод числа */

K = sum = 0; /* обнуление K и sum */

while (N) /* цикл, пока N!= 0 */

{ K++; /* подсчет количества цифр */

m = N % 10; /* получение цифры младшего разряда */

sum += m; /* подсчет суммы цифр */

N /= 10; /* деление N на 10 */

}

printf (“ Количество цифр = %d Сумма цифр = %d/n’’, K, sum);

puts (“ Нажмите любую клавишу.”);

getch (); /* задержка экрана результатов */

}

Результаты программы:

Введите натуральное число: 215

Количество цифр = 3 Cумма цифр = 8

Нажмите любую клавишу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: