# Операторы

## Простые операторы

Каждая строка должна содержать максимум один оператор:

```
++argv;         // Хорошо
--argc;         // Хорошо
++argv; --argc; // ПЛОХО!
```

## Составные операторы

Составные операторы, это такие операторы, которые содержат список операторов, заключенных в фигурные скобки "{ statements }".

* Вложенные операторы должны иметь отступ на один уровень больше, чем составной оператор.
* Открывающая скобка должна стоять в конце строки, начинающей составной оператор; закрывающая скобка должна стоять в начале строки и иметь отступ, такой же, как и составной оператор.
* Фигурные скобки окружают все операторы, даже одиночные, если они являются частью структуры, такой как if-else или for. Таким образом проще добавлять новые операторы, не допуская ошибок, возникающих из-за забытых скобок.

## Оператор return

Оператор return со значением не должен использовать ссылку на родителя, если только это не сделает возвращаемое значение более очевидным:

```
return;

return myDisk.size();

return (size ? size : defaultSize);
```

## Операторы if, if-else, if else-if else

Все операторы типа if-else должны иметь следующий вид:

```
if (condition) {
    statements;
}

if (condition) {
    statements;
} else {
    statements;
}

if (condition) {
    statements;
} else if (condition) {
    statements;
} else {
    statements;
}
```

Примечание: Оператор if следует всегда писать с фигурными скобками {}. Избегайте следующей ошибки:

```
if (condition) //ПЛОХО! ОТСУТСТВУЮТ СКОБКИ {}!
    statement;
```

## Оператор for

Оператор for должен иметь следующий вид:

```
for (initialization; condition; update) {
    statements;
}
```

Пустой цикл for (в котором вся работа выполняется на стадии инициализации, проверки условия и инкрементирования) должны иметь следующий вид:

```
for (initialization; condition; update);
```

## Оператор while

Оператор while должен иметь следующий вид:

```
while (condition) {
    statements;
}
```

Пустой цикл while должен иметь следующий вид:

```
while (condition);
```

## Оператор do-while

Оператор do-while должен иметь следующий вид:

```
do {
    statements;
} while (condition);
```

## Оператор switch

Оператор switch должен иметь следующий вид:

```
switch (condition) {
case ABC:
    statements;
    /* falls through */
case DEF:
    statements;
    break;
case XYZ:
    statements;
    break;
default:
    statements;
    break;
}
```

Всякий раз, если case предполагает автоматический переход к следующему (отсутствует оператор break), добавляйте комментарий в том месте, где должен быть break. Это показано в примере выше: комментарий /\* falls through \*/.

Каждый оператор switch должен содержать default вариант. Ставить break в инструкции default необязательно, но это защищает от возможной ошибки в будущем, если впоследствии добавят еще операторы case ниже.

## Операторы try-catch

Оператор try-catch должен иметь следующий вид:

```
try {
    statements;
} catch (ExceptionClass e) {
     statements;
}
```

Оператор try-catch также может быть дополнен блоком finally, который выполняется независимо от того, успешно завершился блок try, или нет.

```
try {
    statements;
} catch (ExceptionClass e) {
    statements;
} finally {
    statements;
}
```


---

# 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://comaqa.gitbook.io/java-automation/stil-napisaniya-koda/operatory.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.
