Permalink
Browse files

Merge pull request #39 from Temon137/patch-10

Update control-flow.md
  • Loading branch information...
phplego committed Jun 19, 2017
2 parents af5d945 + da1baef commit f23b741651fdec1353f8f9da48ef7f778c393280
Showing with 8 additions and 8 deletions.
  1. +8 −8 control-flow.md
View
@@ -10,7 +10,7 @@ url: https://kotlinlang.ru/docs/reference/control-flow.html
## Условное выражение <b class="keyword">if</b>
В языке Kotlin, ключевое слово <b class="keyword">if</b> является выражением, т.е. оно возвращает значение.
В языке Kotlin ключевое слово <b class="keyword">if</b> является выражением, т.е. оно возвращает значение.
Это позволяет отказаться от тернарного оператора (условие ? условие истинно : условие ложно), поскольку выражению <b class="keyword">if</b> вполне по силам его заменить.
``` kotlin
@@ -51,7 +51,7 @@ val max = if (a > b) {
## Условное выражение <b class="keyword">when</b>
Ключевое слово <b class="keyword">when</b> призвано заменить оператор switch, присутствующий в C-подобных языках. В простейшем виде его использование выглядит так
Ключевое слово <b class="keyword">when</b> призвано заменить оператор switch, присутствующий в C-подобных языках. В простейшем виде его использование выглядит так:
``` kotlin
when (x) {
@@ -64,13 +64,13 @@ when (x) {
```
Выражение <b class="keyword">when</b> последовательно сравнивает аргумент со всеми указанными значениями до удовлетворения одного из условий.
<b class="keyword">when</b> можно использовать и как выражение, и как оператор. При использовании в виде выражения значение ветки, удовлетворяющей условию, становится значением всего выражения. При использовании в виде оператора, значения отдельных веток отбрасываются. (В точности как <b class="keyword">if</b>: каждая ветвь может быть блоком и её значением является значение последнего выражения блока.)
<b class="keyword">when</b> можно использовать и как выражение, и как оператор. При использовании в виде выражения значение ветки, удовлетворяющей условию, становится значением всего выражения. При использовании в виде оператора значения отдельных веток отбрасываются. (В точности как <b class="keyword">if</b>: каждая ветвь может быть блоком и её значением является значение последнего выражения блока.)
Значение ветки <b class="keyword">else</b> вычисляется в том случае, когда ни одно из условий в других ветках не удовлетворено.
Если <b class="keyword">when</b> используется как выражение, то ветка <b class="keyword">else</b> является обязательной, за исключением случаев, в которых компилятор может убедиться, что ветки покрывают все возможные значения.
Если для нескольких значений выполняется одно и тоже действие, то условия можно перечислять в одной ветке через запятую:
Если для нескольких значений выполняется одно и то же действие, то условия можно перечислять в одной ветке через запятую:
``` kotlin
when (x) {
@@ -79,7 +79,7 @@ when (x) {
}
```
Помимо констант в ветках можно использовать произвольные выражения
Помимо констант в ветках можно использовать произвольные выражения:
``` kotlin
when (x) {
@@ -99,7 +99,7 @@ when (x) {
}
```
Помимо этого Кotlin позволяет с момощью <b class="keyword">is</b> or <b class="keyword">!is</b> проверить тип аргумента. Обратите внимание, что благодаря [smart casts](typecasts.html#smart-casts), вы можете получить доступ к методам и свойствам типа без дополнительной проверки.
Помимо этого Кotlin позволяет с момощью <b class="keyword">is</b> или <b class="keyword">!is</b> проверить тип аргумента. Обратите внимание, что благодаря [smart casts](typecasts.html#smart-casts) вы можете получить доступ к методам и свойствам типа без дополнительной проверки:
```kotlin
val hasPrefix = when(x) {
@@ -108,7 +108,7 @@ val hasPrefix = when(x) {
}
```
<b class="keyword">when</b> удобно использовать вместо цепочки условий вида <b class="keyword">if</b>-<b class="keyword">else</b> <b class="keyword">if</b>. При отстутствии аргумента, условия работают как простые логические выражения, а тело ветки выполняется при его истинности:
<b class="keyword">when</b> удобно использовать вместо цепочки условий вида <b class="keyword">if</b>-<b class="keyword">else</b> <b class="keyword">if</b>. При отстутствии аргумента условия работают как простые логические выражения, а тело ветки выполняется при его истинности:
``` kotlin
when {
@@ -170,7 +170,7 @@ for ((index, value) in array.withIndex()) {
## Циклы <b class="keyword">while</b>
Ключевые слова <b class="keyword">while</b> and <b class="keyword">do</b>..<b class="keyword">while</b> работают как обычно:
Ключевые слова <b class="keyword">while</b> и <b class="keyword">do</b>..<b class="keyword">while</b> работают как обычно:
``` kotlin
while (x > 0) {

0 comments on commit f23b741

Please sign in to comment.