4388

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

Реферат

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

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

Русский

2012-11-18

55.5 KB

6 чел.

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

  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


 

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

69843. СОВЕТСКАЯ ПОБЕДА В МОЛДАВСКОЙ “ИСТОРИИ РУМЫН” 23.5 KB
  Кишиневские авторы трудов по истории румын сокрушаются о том что Ион Антонеску не успел капитулировать перед англо-американскими войсками чтобы предотвратить советизацию страны что он до самого последнего момента вел консультации с американцами и англичанами и верил...
69844. ПАБЛИК РИЛЕЙШНЗ В МУЛЬТИКУЛЬТУРНОЙ СРЕДЕ 47 KB
  Факторы актуализации мультинациональных деловых коммуникаций Мультинациональные деловые коммуникации становятся все более значимой сферой в деловой среде. Уровни деловой культуры: национальный региональный глобальный Известно что по критерию границ или масштабов операций...
69846. ФИЗИЧЕСКАЯ КУЛЬТУРА: УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС 2.09 MB
  Физическая культура направлена на поддержание здоровья, развитие физических способностей студента и использование их в соответствии с потребностями общественной жизни. В своей основе физическая культура имеет целесообразную двигательную деятельность в форме физических упражнений, позволяющих...
69847. Основы безопасности жизнедеятельности 64.88 KB
  Принцип гуманизации труда освобождение человека от выполнения механических стереотипных тяжелых и опасных видов труда для выполнения творческих действий. Принцип нормирования заключается в установлении таких параметров соблюдение которых обеспечивает защиту человека от соответствующих...
69848. АДМИНИСТРАТИВНОЕ ПРАВО 738.5 KB
  Административное право является одной из важнейших отраслей правовой системы государства, а административное законодательство служит правовой основой построения и функционирования самой многочисленной ветви власти – исполнительной.
69849. Арбитражный процесс: Учебно-методический комплекс 608 KB
  Учебно-методический комплекс содержит необходимые учебные материалы: программу учебного курса, планы семинарских занятий, задачи, тематику рефератов и курсовых работ, экзаменационные вопросы, список рекомендуемой литературы, нормативных правовых актов, официальных актов высших...
69850. БЕЗОПАСНОСТЬ ЖИЗНЕДЕЯТЕЛЬНОСТИ: УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС 140.5 KB
  Дисциплина «Безопасность жизнедеятельности» учит распознавать, оценивать, предупреждать потенциальные опасности, защищать человека, общество, государство от негативных воздействий техногенного, антропогенного, социального характера, комплексно подходить к решению проблем безопасности.
69851. ИСТОРИЯ ОТЕЧЕСТВЕННОГО ГОСУДАРСТВА И ПРАВА 648 KB
  Предметом изучения курса «История отечественного государства и права» является история становления и развития государства и права России с древнейших времен до наших дней. Изучение в рамках курса некоторых аспектов истории судебных органов России решает следующие задачи...