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, т.к. дошли до конца.
}