Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
.doc
Скачиваний:
4
Добавлен:
23.09.2019
Размер:
440.83 Кб
Скачать

13) Операторы языка с. Условные операторы (if, switch). (в1б13, в2б27)

Любое выражение, после которого стоит точка с запятой воспринимается компилятором как оператор, который определяет законченное действие на определенном шаге выполнения программы.

Условный оператор--- if.

а).If (выражение) оператор1;

Else оператор2;

б) вложенный оператор if:

if (х) { if (y) оператор 1;}

else оператор 2;

в) неполная форма—if (выр-ние) оператор1;

г) If (условие) оператор1;

Else If (условие) оператор2;

Else If (условие) оператор3;

Else оператор;

Выражение - некоторое условие, содержащее операции отношения и логич. операции. Значение выражения приводится к целому, интерпретируется след. образом: 0-ложь, 1-истина. Если выражение истинно, то вып-ся оператор 1, если нет - оператор2.

Выражение записывается в ( ).

Составной оператор - последовательность операторов, заключенных в { }.

Пример:

# include<stdio.h>

# include<conio.h>

main(){

int x;

printf (“Введите число”);

\\ ввод на экран сообщения

scanf (“%d &x”);

\\ ввод с клавиатуры значения переменной х

If (x>0)

Printf(“ это число положительное %d”, x);

If (x>0)

Printf ( “ это число равно нулю %d”,x)

If (x<0)

Printf ( “ это число отрицательное %d”,x);

Getch();}

Оператор выбора---switch.

Switch (целочисленное выражение)

{case конст.1:

список операторов;

break;

case конст.2:

список операторов; break;

default: список операторов;}

Выполнение операторов происходит в след. порядке:

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

Иногда используется оператор break-оператор выхода. После его выполнения завершается работа оператора выбора, т.е. происходит «обход» других ветвей.

Пример:

……..

switch (a)

{

case 1: b=c; break;

case 2:

switch (d)

{ case 0: f=s; break;

case 1: f=9; break;

case 2: f-=9; break;

}

case 3: b-=c; break;

:

}

14) Операторы цикла (while, for, do while )(в1б14, в3б11)

Оператор цикла while называется циклом с предусловием и имеет следующий формат:

while (выражение) оператор ;

В качестве выражения допускается использовать любое выражение языка Си, а в качестве тела любой оператор, в том числе пустой или составной. Схема выполнения оператора while следующая:

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

2. Если выражение ложно, то выполнение оператора while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполняется тело оператора while.

3. Процесс повторяется с пункта 1.

Оператор цикла вида

for (выражение-1; выражение-2; выражение-3) тело ;

может быть заменен оператором while следующим образом:

выражение-1;

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

{ тело

выражение-3;

}

Так же как и при выполнении оператора for, в операторе while вначале происходит проверка условия. Поэтому оператор while удобно использовать в ситуациях, когда тело оператора не всегда нужно выполнять.

Внутри операторов for и while можно использовать локальные переменные, которые должны быть объявлены с определением соответствующих типов.

Пример:

while(a <= b){        printf("sin(%.4lf) = %.4lf\n",a,sin(a));        a += h;     }

Общая форма оператора for следующая:

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

Инициализация — это присваивание начального значения переменной, которая называется параметром цикла. Условие представляет собой условное выражение, определяющее, следует ли выполнять оператор цикла (часто его называют телом цикла) в очередной раз. Оператор приращение осуществляет изменение параметра цикла при каждой итерации. Эти три оператора (они называются также секциями оператора for) обязательно разделяются точкой с запятой. Цикл for выполняется, если выражение условие принимает значение ИСТИНА. Если оно хотя бы один раз примет значение ЛОЖЬ, то программа выходит из цикла и выполняется оператор, следующий за телом цикла for.

В следующем примере в цикле for выводятся на экран числа от 1 до 100:

#include <stdio.h>

int main(void)

{

int x;

for(x=1; x <= 100; x++) printf("%d ", x);

return 0;

}

В этом примере параметр цикла х инициализирован числом 1, а затем при каждой итерации сравнивается с числом 100. Пока переменная х меньше 100, вызывается функция printf() и цикл повторяется. При этом х увеличивается на 1 и опять проверяется условие цикла х <= 100. Процесс повторяется, пока переменная х не станет больше 100. После этого процесс выходит из цикла, а управление передается оператору, следующему за ним. В этом примере параметром цикла является переменная х, при каждой итерации она изменяется и проверяется в секции условия цикла.

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

do тело while (выражение);

Схема выполнения оператора do while :

1. Выполняется тело цикла (которое может быть составным оператором).

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

3. Если выражение ложно, то выполнение оператора do while заканчивается и выполняется следующий по порядку оператор. Если выражение истинно, то выполнение оператора продолжается с пункта 1.

Чтобы прервать выполнение цикла до того, как условие станет ложным, можно использовать оператор break.

Операторы while и do while могут быть вложенными.

Пример:

int i,j,k;

...

i=0; j=0; k=0;

do { i++;

j--;

while (a[k] < i) k++;

}

while (i<30 && j<-30);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]