4388

Использование циклов в языке С++

Реферат

Информатика, кибернетика и программирование

Использование циклов в языке С++ Оператор goto Для решения ряда задач требуется многократное повторение одних и тех же действий. На практике это реализуется либо с помощью рекурсии, либо с помощью итерации. Итерация – это повторение одних...

Русский

2012-11-18

55.5 KB

7 чел.

Использование циклов в языке С++

  1.  Оператор goto

Для решения ряда задач требуется многократное повторение одних и тех же действий. На практике это реализуется либо с помощью рекурсии, либо с помощью итерации. Итерация – это повторение одних и тех же действий определенное количество раз. Основным методом итерации является цикл. На заре компьютерной эры программы были простыми и короткими. Циклы состояли из метки, нескольких команд и оператора безусловного перехода.

В С++ метка представляет собой имя, за которым следует двоеточие (:). Метка размещается слева от того оператора С++, к которому будет выполнен переход по оператору goto с соответствующим именем метки.

Листинг 4.1. Цикл на основе оператора goto

1: #include <iostream>

2: int main()

3: {

4: using namespace std;

5: int counter=0;  // инициализировать счетчик

6:  loop:    //метка – начало цикла

7: counter ++;   //инкрементируем счетчик

8: cout << “counter: “ << counter << “\n”;

9: if (counter < 5)  //проверка значения

10: goto loop;   //перейти к началу

11:

12: cout << “Complete. Counter: ” << counter << “.\n”;

13: return 0;

14: }

РЕЗУЛЬТАТ

counter: 1

counter: 2

counter: 3

counter: 4

counter: 5

Complete. Counter: 5.

Как правило, программисты избегают оператора goto, и на то есть причины. Оператор goto позволяет перейти в любую точку программы – как вперед, так и назад. Беспорядочное использование операторов goto приводит к сознанию запутанного, трудно читаемого кода, прозванного «спагетти». Чтобы избежать оператора goto, используют более сложные, управляемые операторы цикла: for, while, do..while.

  1.  Оператор цикла while

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

Рис. 4.1. Обозначение цикла while на блок-схеме алгоритма программы

Листинг 4.2. Цикл на основе оператора while

1: #include <iostream>

2: int main()

3: {

4: using namespace std;

5: int counter=0; // присвоить начальное значение

6:  while (counter < 5) //проверка истинности условия

7: {

8: counter ++;   //инкрементируем счетчик

9: cout << “counter: “ << counter << “\n”;

10: }

11: cout << “Complete. Counter: ” << counter << “.\n”;

12: return 0;

13: }

РЕЗУЛЬТАТ

counter: 1

counter: 2

counter: 3

counter: 4

counter: 5

Complete. Counter: 5.

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

  1.  Операторы break и continue 

Иногда необходимо перейти к началу цикла еще до завершения выполнения всех операторов тела цикла. Для этого используется оператор continue. Однако в ряде случаев требуется выйти из цикла еще до проверки условия продолжения цикла. Для этого используется оператор break.

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

  1.  Оператор цикла do..while

Рис. 4.2. Обозначение цикла do..while на блок-схеме алгоритма программы

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

Цикл do..while сначала выполняет тело цикла, а условие продолжения проверяет потом. Это гарантирует выполнение операторов цикла, по крайней мере, один раз. Оператор do..while имеет следующий синтаксис:

do

оператор;

while (условие);

Пример:

// считать до 10

int x=0;

do

cout << “x: “ <<x++;

while (x<10);

  1.  Оператор цикла  for

Рис. 4.3. Обозначение цикла c заданным числом повторений

Синтаксис этого оператора следующий:

for (инициализация; условие; приращение)

оператор;

Оператор инициализация устанавливает начальное значение счетчика. Следующий оператор: условие – это любое выражение языка С++, результат которого проверяется на каждом цикле. Если результат этого выражения является истинным, то выполняется тело цикла, а затем, после изменения счетчика на величину приращения (по умолчанию – увеличение на единицу), действия повторяются.

Пример:

// вывести Hello десять раз

for (int i=0; i<10; i++)

cout << “Hello! “;

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

Листинг 4.3. Вложенный цикл for

#include <iostream>

#define rnd (rand()/32768.0)  /* директива #define задает переменную rnd, которая изменяется случайным образом в диапазоне от 0 до 1 */

int main (){

using namespace std;

int i, j, n, m;

float a[50][50];

cout<<"Input n: ";

cin>>n;

cout<<"Input m: ";

cin>>m;

cout<<endl;

cout<<"Random Array \n";

for (i=0; i<n; i++){

 cout<<endl;

 for (j=0; j<m; j++){

  a[i][j]=rnd*10-5;

  cout<<a[i][j]<<"  \t";

 }

}

char response;

cin>>response;

return 0;

}


  Условие

   Действие

Да

ет

  Условие

   Действие

Да

Нет

   Действие

  i=n1, n2, h


 

А также другие работы, которые могут Вас заинтересовать

9397. Участники уголовного процесса: государственные органы и должностные лица 51.5 KB
  Тема №4. Участники уголовного процесса: государственные органы и должностные лица. Понятие участников уголовного процесса и их классификация. Стороны в уголовном судопроизводстве. Их субъектный состав. Под участниками уголовного судопро...
9398. Участники процесса, отстаивающие свои или представляемые интересы 40 KB
  Тема №5. Участники процесса, отстаивающие свои или представляемые интересы. Потерпевший. Понятие дается в ст.42 УПК - физическое или юридическое лицо. Потерпевший - физическое лицо - которому преступлением причинен физический, имущественны...
9399. Уголовное преследование. Реабилитация 35.5 KB
  Тема №6. Уголовное преследование. Реабилитация. Понятие, сущность и основания уголовного преследования. Соотношение уголовного преследования с обвинением. Уголовное преследование одно из назначений уголовного судопроизводства...
9400. Гражданский иск. Основания, предмет и процессуальный порядок предъявления гражданского иска 33 KB
  Гражданский иск Понятие гражданского иска. Основания, предмет и процессуальный порядок предъявления гражданского иска. УПК предусматривает возможность рассмотрения гражданского иска в рамках производства по уголовному делу. Гражданский иск...
9401. Общие положения теории доказательств 100.5 KB
  Тема №8. Общие положения теории доказательств. Общетеоретические и философские проблемы доказывания в уголовном процессе. Доказательственное право не является самостоятельной отраслью права, оно является подотраслью УПП. Под доказательственным право...
9402. Возбуждение уголовных дел 42.5 KB
  Тема №9: Возбуждение уголовных дел. Понятие сущность задачи и значение стадии возбуждения уголовных дел. О возбуждении уголовного дела можно говорить в различных смыслах, как: 1. стадия 2. институт 3. акт, действие Возбуждение уголовного дела ...
9403. Предварительное расследование. Понятие, сущность и значение предварительного расследования (ПР). 47.5 KB
  Тема №10: Предварительное расследование. Понятие, сущность и значение предварительного расследования (ПР). ПР рассматривают как: - как стадию - как деятельность ПР это 2 ая стадия. Основное содержание данной стадии образует основанная на законе деяте...
9404. Следственные действия и порядок их производства 106.5 KB
  Тема 11: Следственные действия и порядок их производства. Понятие, виды и система следственных действий. Двойственный подход к определению понятия следственных действий. С принятием УПК под следственными действиями понимаются процессуальные де...
9405. Приостановление предварительного расследования 57 KB
  Тема №12. Приостановление предварительного расследования. понятие, основания и условия приостановления предварительного следствия. процессуальный порядок приостановления предварительного следствия. возобновление предварительного сл...