Continue

Break

For

While

If

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

Приоритет и ассоциативность операций

Операция sizeof

sizeof(<тип данного/имя переменной>) — возвращает размер (в байтах), занимаемый переменной или типом данных.

sizeof(short) → 2

Операция Ассоциативность Приоритет
приоритетные скобки слева направо  
x[b],f(…), x.a, x->a, ++x, --x слева направо  
x++, x--, sizeof(x), ~a,!a, +a, -a, &x, *a справа налево  
приведение типа справа налево  
a*b, a/b, a%b слева направо  
a+b, a-b слева направо  
a<<b, a>>b слева направо  
a<b, a<=b, a>b, a>=b слева направо  
a==b, a!=b слева направо  
a&b слева направо  
a^b слева направо  
a|b слева направо  
a&&b слева направо  
a||b слева направо  
a?b:c справа налево  
все виды присваивания справа налево  
a,b справа налево  

Большое количество уровней приоритетов операций позволяет строить достаточно сложные выражения без использования скобок. Но для улучшения читаемости скобки всё-таки рекомендуется использовать.

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

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

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

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

Цикл с предусловием. Оператор выполняется, пока выражение истинно.

Есть также цикл с постусловием:

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

Цикл for выглядит следующим образом и не является циклом с заданным числом повторений как таковым(в отличие, например, от ЯВУ Pascal):

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

Например,

for (x=0;x<10;x++) a+=f(x);

Запись вида

for(A;B;C) D;

полностью аналогична

{A;

while (B) {D; C;}}

Оператор break используют для выхода из циклов for / while и ветвления switch. Для вложенных циклов выход осуществляется на один уровень.

Данный оператор вызывает принудительный переход к следующей итерации цикла. Например, требуется сложить все целые числа от a до b не кратные трём.

for(int i=a, s=0; i<=b; i++)

{

if (i%3==0) continue; //переходим к следующему значению i

s+=i;

}

switch

Структура записи оператора switch следующая.

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

{

case значение1: группа_операторов1; break;

case значение2: группа_операторов2; break;

default: группа_операторов_по_умолчанию;

}

При равенстве переменной «значению1», выполняется соответствующая группа операторов, которая заканчивается словом break. При несовпадении ни с одним из значений, выполняется секция default. Значения должны быть представлены в форме целочисленной константы.

Формально, секции «case …:» являются метками, на которые осуществляется переход при совпадении значений. Именно поэтому после перехода на метку выполняются все команды до конца секции switch-case либо до оператора break. Этим можно пользоваться для уменьшения степени дублирования кода. Например, пусть задано условие: если переменная x равна 0, то вызвать функцию f1(), а если равно 2, то вызвать f1() и f2().

switch(x)

{

case 2: f2(); //не используем break, т.к. требуется выполнение и следующей команды.

case 0: f1(); //не используем break, т.к. дошли до конца.

}


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



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