Операторы языка Си

Все операторы условно могут быть разделены на категории:

  1. Условные операторы (if, switсh);
  2. Операторы цикла (for, while, do);
  3. Операторы переходов (break, continue, return, goto);
  4. Операторы “выражение” (”,”, “пустой оператор”).

Операторы в программе могут объединяться в составные операторы с помощью фигурных скобок.

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

Все операторы языка Си, кроме составных операторов, заканчиваются точкой с запятой (;).

I. Оператор ”выражение”

Этот оператор заключается:

a. в вычислении выражения и присваивания;

b. в вызове функций.

Пример:

++i;

fltVar=cos(a*5);

swap(&x,&y);

II. Пустой оператор

Состоит только из точки с запятой. При выполнении ничего не происходит. Используется в операторах do, for, while, if в случаях, когда тело оператора не требуется, хотя по синтаксису требуется хотя бы один оператор. А также, когда необходимо пометить фигурную скобку меткой. Синтаксис требует, чтобы после метки обязательно следовал оператор. Фигурная скобка оператором не является. Поэтому, если надо передать управление на фигурную скобку, необходимо использовать пустой оператор.

Пример:

void main()

{

{

goto end:;

}

end:;

}

III. Составной оператор

Формат:

{ [объявление]

оператор

[оператор]

}

В конце составного оператора точка с запятой не ставится. Выполнение составного оператора заключается в последовательном выполнении составляющих его операторов.

IV. Оператор if.

if (выражение)

оператор1

[ else оператор2]

Пример: if (i<j)

i++;

else {

j=i-3;

i++;

}

Вычисление оператора if начинается с вычисления выражения.

Если выражение истинно (не ноль), то выполняется оператор1, иначе оператор2.

Если выражение ложно и отсутствует фраза else, то выполняется следующий за if оператор.

Допускается использование вложенных операторов if

Пример:

int main() { int iVar1=2, iVar2=7, iVar3=3; if (iVar1>iVar2) { if (iVar2<iVar3) iVar3=iVar2; } else iVar3=iVar1; printf(“iVar3=%d\n”,iVar3); } iVar3=2 int main() { int iVar1=2, iVar2=7, iVar3=3; if (iVar1>iVar2) if (iVar2<iVar3) iVar3=iVar2; else iVar3=iVar1; printf(“iVar3=%d\n”,iVar3); } iVar3=3

V. Оператор switch

предназначен для организации выбора из множества вариантов.

Формат:

switch (выражение){

[case константное_выражение:]

[список операторов]

[case константное_выражение:]

[список операторов]

[default: список оператор]

}

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

Константное выражение вычисляется во время компиляции. Оно не может содержать переменные или вызовы функций. Обычно используются целые или символьные константы.

Замечание: Программист должен сам позаботиться о выходе из case, иначе все выполняется до конца.

Пример:

int a=2;

switch(a) {

case 1: func1();

case 2: func2();

case 3: func3();

case 4: func4();

default: printf(“Good bye\n”);

}

Выполнение будет идти от func2() и до конца.

VI. Оператор break

Обеспечивает прекращение выполнения самого внутреннего из объемлющих его операторов switch, do, for и while. После выполнения оператора break управление передается оператору, следующему за прерванным.

Пример:

char cSign;

float x, y=2, z=5;

printf(“Введите знак операции (+ - * /):”);

scanf("%c",&cSign);

switch (cSign) {

case '-':x=y-z;

break;

case '+':x=y+z;

break;

case '*':x=y*z;

break;

case '/':x=y/z;

break;

default: printf("Неизвестная операция.\n");

}

printf("x=%f\n",x);

VII. Оператор for

Оператор цикла for имеет следующий формат:

for([выражение_инициализация];[условное выражение];[выражение_итерация])

оператор

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

Условное выражение — выражение, определяющее условие, при котором оператор цикла будет исполняться.

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

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

  1. вычисляется выражение_инициализация;
  2. вычисляется условное выражение;
  3. если значение условного выражения не равно нулю, выполняется оператор;
  4. вычисляется выражение_итерация;
  5. вновь вычисляется условное выражение;
  6. если условное выражение равно нулю, управление передается на оператор, следующий за оператором for.

Замечание: Проверка условия всегда выполняется в начале цикла. Это значит, что цикл может ни разу не выполниться, если условное выражение сразу будет ложным.

Пример:

#include<stdio.h>

#include<windows.h>

void main()

{

char cStr[]="Квадрат числа ";

CharToOem(cStr,cStr);

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

printf("%s%2d=%3d\n", cStr, i, i*i);

}

Результат — квадрат чисел от 0 до 9.

Проверить работу программы, если изменить 7-ую строку на:

for(int i=0; i<=10; i++); // добавили;

VIII. Оператор while

Формат:

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

оператор

Схема выполнения:

  1. вычисляется выражение;
  2. если выражение ложно (=0), то тело оператора while не выполняется, а управление передается на следующий за while оператор;
  3. если выражение истинно (не равно нулю), то тело оператора while выполняется;
  4. процесс повторяется с шага 1.

Пример:

int iVar;

iVar=0;

while (i<10) {

printf(“i=”,i);

i++;

}

IX. Оператор do

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

Формат:

do

{

оператор;

}

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

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

  1. выполняется оператор;
  2. вычисляется выражение. Если выражение не равно нулю, то выполнение продолжается с шага 1.

X. Оператор continue

Этот оператор работает подобно оператору break, но в отличие от break прерывает выполнение тела цикла и передает управление на следующую итерацию.

Формат: continue

Пример: /* вывод четных чисел*/

void main()

{

int iVar;

for(iVar=0;iVar<100;iVar++)

{

if(iVar%2) continue;

printf(“%d\n”,iVar);

}

}

XI. Оператор return

Оператор завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию. Управление передается в вызывающую функцию в точку, непосредственно следующую за вызовом.

Формат: return [выражение];

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

Если функция не возвращает значения, ее следует объявить с типом void.

То есть, имеем два случая использования:

  1. надо немедленно выйти из функции;
  2. функция должна возвращать значение.

Пример:

int sum(int iVar1, int iVar2)

{

return (iVar1+iVar2);

}

Пример:

void print(char x)

{

if (x==0)

{ printf(“Это плохой аргумент\n”,);

return;

}

printf(“Введите аргумент %с\n”,x);

}

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

XII. Оператор goto


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: