Направления программирования. История создания языка Си. Особенности языка, страница 12

{

case’+’: x = x +z; break;

case ’-‘: x = y -z; break;

}

Оператор может быть помечен несколькими case.

switch(ts)

{

case’+’:

case ’-‘:

case’*’:

fanc(ts):{вызов функции}

}

п.8.6.Циклические операторы.

п.8.6.а) Оператор цикла с предусловием.

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

<оператор>;

Выполнение: Вычисляется значение <выражения>, если оно не равно нулю, то выполняется <оператор>, если значение выражения равно нулю (т.е. ложно), то оператор следующий за while.

Примеры:

1)  int x=100;)  

while (x>0) 

{y= f(x); 

x--;

}

2)  while((c=getch())!=’y’);

getchс()-читает символ с клавиатуры. Функция ожидает нажатия клавиши и возвращает код, соответствующий символу клавиатуры, одновременно отображая введенный символ на экран.

getch()-действует аналогично , но не выводит символ на экран.

Прототипы этих функций находятся в conio.h.

п.8.6.б) Оператор цикла с постусловием.

do<оператор>

while(<выражение>);

Выполнение: Выполняется оператор цикла, а затем вычисляется значение выражения, если значение истинно, то выполнение оператора повторяется, если ложно, то выходим из цикла.

Пример:

¥

S= S(xi /i!)             суммирование прекращаем, если очередное слагаемое £ eps

i=0

#include<stdio.h>

void main(void)

{

float s=0,eps;

int i=1;

scanf(“%f”,&eps);

do

 {

s1*=x/i;

i++;             s+=s1*=x/i

s+=s1;

}

while(s1>eps);

}

п.8.6.в) Оператор пошагового цикла.

for([<начальное выражение>];[<условное выражение>];[<выражение приращения>])

<оператор>;

<Начальное выражение> используется для инициализации параметра цикла.<Условное выражение> задает условие при котором должно произойти завершение цикла.<Выражение приращения> используется для изменения значения параметра.

Си++ позволяет объявлять и инициализировать переменную управления циклом внутри цикла for. В Си++ можно объявлять переменные непосредственно перед оператором, который их использует, а не обязательно в начале блока как в Си. Но это используется редко, т.к. нарушается удобочитаемость программы.

Выполнение:

1. Вычисляется <начальное выражение>, если есть.

2. Вычисляется <условное выражение>, если оно истинно выполняется <оператор> цикла.

3. Вычисляется <выражение приращения>, если оно есть.

4. Процесс продолжается, пока<условное выражение>не станет ложно.

Если <условное выражение> опушено, то предполагается что оно истинно и цикл становится бесконечным. for( ; ; )-тоже бесконечный цикл.

Пример:

for(<выражение1>;<выражение2>;<выражение3>)

{

<оператор>

}

эквивалентно

<выражение1>;

while(<выражение2>)

{

<оператор>

<выражение3>;

}

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

Пример: демонстрирует гибкости цикла for.(в ущерб понятности)

for(i=100 ; i>=0 ; printf(“\n%d”,i) , i-=2)

 


операция последовательного вычисления выражений

По синтаксису <выражение3>-одно, но используя операцию ,(запятая) можно выполнить и более чем одно выражение.

п.8.7.Оператор продолжения continue.

Передает управление не следующую итерацию в циклах do, for, while, может появляться только в теле этих операторов. Оставшиеся операторы в теле цикла при этом не выполняются. В операторах do и while следующая операция начинается с вычисления условного выражения. В операторе for с вычисления выражения приращения.

Пример:

while(i-- >0)

{                                                       Выполнение: Если х=1, то у не вычисляется, мы  идем  на  следующую

x=f(i);                                                                    итерацию, в противном случае вычисляем у.

if(x==1) continue;

else y=x*x;

}

п.8.8.Оператор разрыва break.