# Условия – оператор if

## Объяснение

Условия используются для управления выполнением некоторого кода. Используя условия, вы можете контролировать, работает ли фрагмент кода на основе условий. **if** оператор являются наиболее часто используемыми условиями. Используя **if** вы можете убедиться, что часть кода работает только при условии, что само условие или набор условий - истина (`true`).

## Пример

Допустим, вы делаете игру, и вы делаете магазин. Здесь игрок должен купить некоторые улучшения. Первое улучшение - улучшение оружия. Оно стоит 200 монет. Таким образом, игрок может купить его только в том случае, если это условие выполнено, то есть если у них есть как минимум 200 монет. В таком случае мы можем использовать условие **if**:

```c
if (coins>=200) {
    //купить улучшение
}
```

Знак > открывается в сторону, которая больше, и = конечно же, означает равно. Итак, проверяя, `if coins>=200`, мы проверяем, **больше ли 200 монет** или они **равны 200**.

Таким образом, игрок может купить улучшение только в том случае, если у него достаточно монет. Но что, если он этого не сделает? Мы должны уведомить его, что ему нужно больше монет. Но это нужно только тогда, когда условие не выполняется. Для этого мы используем **else**.

```c
if (coins>=200){
     //купить улучшение
}
else{
    //уведомить, что недостаточно монет
}
```

Код после **else** выполняется только тогда, когда предыдущее условие **if** вернуло `false`. Поэтому, если у игрока меньше 200 монет, он будут уведомлен об этом.

Вы также можете поместить условие после **else**, так что даже после того, как прежнее условие вернет `false`, для выполнения кода потребуется еще одно условие **else**.

Таким образом, вы можете добавить больше **else** и добавить разный код для разных условий:

```c
if (condition0){
    //code0
} else if (condition1){
    //code1
} else if (condition2){
    //code2
} else{
    //code3
}
```

Если `condition0` истинно, `code0` будет запущен, а остальная часть оператора **if** будет пропущена. Но если `condition0` является ложным, оно перейдет к `condition1`. Если оно истинное, он выполнит `code1` и остановится. Но если он тоже ложный, тогда он перейдет в `condition2`. Если это правда, `code2` будет запущен, но если нет, оператор **if**, наконец, перейдет к последней части и увидит, что нет условия, и выполнится `code3`.

## Примечание

В предыдущем примере мы проверили, были ли монеты больше либо равны 200. Но условия могут использоваться многими другими путями.

```c
//Проверка равного значения:
  if (money==400)
  //Для того чтобы это условие было истинным, money должна быть равна 400.

//Проверка меньшего значения:
  if (money<50)
  /*Для того чтобы это условие было истинным, деньги должны быть меньше 50 (не более 
  49,99..)*/

//Проверка, что что-то не равно:
  if (name!="CURSE")
  /*Если имя игрока CURSE, это условие вернет false. 
  Для того, чтобы это условие работало, name не должно быть равно значению.*/
  //Другой пример:
  if (lives!=3)
  //Верно, только если lives не равно 3.

//Проверка логического значения на истинность:
  if (paused==true)
  или
  if (paused)
  /*Истинно только тогда, когда переменная истинна, здесь это - paused.
  Вы можете пропустить часть "== true" и просто ввести имя переменной чтобы проверить, 
  истина ли это.*/

//Проверка логического значения на ложность:
  if (paused==false)
  //или
  if (!paused)
  /*Истинно, если указанная переменная имеет значение false.
  Восклицательный знак (!) можно использовать в качестве префикса, что бы перевернуть 
  его.
  Поэтому, если условие ложно, оно вернет true..*/
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://darkpro1337.gitbook.io/gml/if.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
