> For the complete documentation index, see [llms.txt](https://op-al.gitbook.io/s-30-voprosy-i-dop.-voprosy/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://op-al.gitbook.io/s-30-voprosy-i-dop.-voprosy/4.-vyrazheniya.-prostye-instrukcii.-instrukcii-break-continue-goto-sizeof.-klyuchevoe-slovo-typedef..md).

# 4. Выражения. Простые инструкции. Инструкции break, continue, goto, sizeof. Ключевое слово typedef.

## Выражения&#x20;

**Выражение** - объединение операций и операндов.  **Выражение** состоит из операций (Арифметические, сравнения, Логические, Побитовые, побитового сдвига, инкремент и декремент) и операндов (константы, переменные).

## Простые инструкции&#x20;

**Инструкция** - это фрагмент кода, который выполняет определенное действия. Простая инструкция состоит из выражения, за которым следует ; . Примеры инструкций:&#x20;

```cpp
; - пустая инструкция 
int num; - объявление переменной
int num = 5; - определение переменной
num = num + 5; - присваивание 
```

## Особые инструкции

1. `break` Оператор прерывания. Используется в циклах, в конструкции switch. Выход из самого внутреннего из объемлющих циклов и переключателей, программа не обрывается.
2. `continue` Оператор незамедлительного перехода к следующей итерации цикла.
3. `goto` Оператор перехода к определенной точке программы. Использование этого оператора не одобряется.

```c
void checkEvenOrNot(int num)
{
    if (num % 2 == 0)
        // jump to even
        goto even;
    else
        // jump to odd
        goto odd;
  
even:
    printf("%d is even", num);
    // return if even
    return;
odd:
    printf("%d is odd", num);
}
```

4. `sizeof` Оператор, позволяющий узнать размер операнды в байтах.&#x20;

#### &#x20;Ключевое слово typedef позволяет определить новое имя для существующего типа данных. Также его называют псевдонимом.

:star: `typedef` не создает никаких новых типовых данных. Он отсылается к своему объявлению. Использовали в лабораторных, чтобы не писать `struct Base base`
