Void error_message(int error_code)

{

Switch(error_code)

{

case 1:

printf(“\n Message 1”); break;

case 2:

printf(“\n Message 2”); break;

case 5:

printf(“\n Message 5”); break;

default:

printf(“\n Invalid code error”);

}

}

Оператор goto

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

Синтаксис:

Goto идентификатор;

Пример

Goto backend;

backend:x+=3;

Рекомендации по применению go to.

- не входить внутрь блока извне;

- не входить внутрь оператора if или else, if else, switch;

- не входить внутрь оператора цикла.

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

Циклы (итерационные структуры) позволяют повторять выполнение отдельных операторов или группы операторов. Число повторений может быть фиксировано, либо определяется в процессе счета на основе одной или нескольких проверок условия. Операторы цикла: while, do while, for.

Оператор цикла while (пока)

Синтаксис

While (условное-выражение)

Оператор

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

Цикл while завершается в следующих случаях:

1. обратилось в 0 условное выражение в заголовке цикла;

2. в теле цикла выполнился оператор break;

3. в теле цикла выполнился оператор return.

В случаях 1., 2. управление передается на оператор, следующий за циклом. В случае 3. – возврат из программной единицы.

Пример 1.

Main()

{

int i=4;

while(i>0)

printf(“\n C++ эффективен\n”);

}

Ошибка. Не меняется значение переменной i.

Пример 2.

Main()

{

int j=5;

while(j=5)

{

printf(“\n j=5\n”); j++;

}

} //Ошибка. Используется “=”, а нужно “= =”

Пример 3.

printf(“\n Отвечайте yes или no (y/n):”);

scanf(“%c”,&ch);

while(ch!=’y’&&ch!=’n’)

{

printf(“\n Отвечайте yes или no (y/n):”);

scanf(“%c”,&ch);

}

Пример 4

while (index<size&&data[index]!=key)

index++;

return(data[index]= =key)?index:-1;

Возвращается неотрицательный индекс, определяющий положение целочисленной переменной key в массиве data, и –1, если в массиве такого значения нет.

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

Синтаксис

Do

Оператор

While (условное-выражение);

Цикл do while прекращает выполняться, когда условное выражение обращается 0 (ложно). Выход из данного цикла аналогичен выходу из цикла while:

Пример программы сравнения двух строк

#include <stdio.h>

Main()

{

extern int compare(char str1[],char str2[]);

char str1[80],str2[80];

printf(“\n Введите первую строку:”);

scanf(“%s”,str1);

printf(“\n Введите вторую строку:”);

scanf(“%s”,str2);

if (compare(str1,str2)<0)

printf(“\n\n Первая строка меньше второй”);

else if (compare(str1,str2)= =0)

printf(“\n\n Первая строка равна второй”);

Else

printf(“\n\n Первая строка больше второй”);

}

int length(char str[])

{

int index=0;

while (str[index++]!=0) ;

Return - - index;

}

int compare(char str1[],str2[])

{

extern int length(char str[]);

int len1=length(str1);

int len2=length(str2);

int index=-1;

Int minlength;

minlength=(len1<len2)?len1:len2;

Do

index++;

while (index<minlength&&str1[index]= = str2[index]);

if (len1= = len2&&str1[index] = = str2[index]) return 0;

else if (len1< len2&&str1[index] = = str2[index]) return -1;

else if (len1> len2&&str1[index] = = str2[index]) return 1;

else if (str1[index] < str2[index]) return -1;

Else return 1;

}

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

Это наиболее общая форма оператора цикла.

Синтаксис:

for ([выражение 1];[выражение 2];[выражение 3])

Оператор;

Каждое из трех выражений можно не указывать. Следует знать, что:

выражений 1 – служит для инициализации параметра цикла;

выражение 2 – служит для выполнения проверки на окончание цикла. (максимальное или минимальное значение параметра цикла);

Выражение 3 – служит для изменения значения параметра цикла.

Цикл for выполняется следующим образом:

1. Вычисляется выражение 1;

2. Вычисляетсявыражение 2.Если результат равен 0, то цикл прекращается, иначе продолжается.

3. Выполняются операторы тела цикла;

4. Вычисляется выражение 3;

5. Переход к пункту 2.

Замечание. Появление в любом месте тела цикла оператора continue приводит к немедленному переходу к пункту 4.

Эквивалентность циклаforи циклаwhile

Наши рекомендации