В този урок ще се научите да използвате break за прекратяване на цикъл. Също така ще научите и за етикетите за прекъсване.
Да предположим, че работите с цикли. Понякога е желателно да прекратите цикъла незабавно, без да проверявате тестовия израз.
В такъв случай break
се използва. Той прекратява най-близкия затварящ цикъл, когато се срещне (без проверка на тестовия израз). Това е подобно на това как изразът break работи в Java.
Как работи почивката?
Почти винаги се използва с if … else конструкция. Например,
за (…) (ако (testExpression) (прекъсване))
Ако testExpression се оцени на true
, break
се изпълнява, което прекратява for
цикъла.
Пример: Kotlin почивка
fun main(args: Array) ( for (i in 1… 10) ( if (i == 5) ( break ) println(i) ) )
Когато стартирате програмата, изходът ще бъде:
1 2 3 4
Когато стойността на i е равна на 5, изразът i == 5
вътре if
се изчислява true
и break
се изпълнява. Това прекратява цикъла for.
Пример: Изчисляване на сумата, докато потребителят не въведе 0
Програмата по-долу изчислява сумата от числа, въведени от потребителя, докато потребителят не въведе 0.
Посетете Kotlin Basic Input Output, за да научите повече за това как да вземете вход от потребителя.
fun main(args: Array) ( var sum = 0 var number: Int while (true) ( print("Enter a number: ") number = readLine()!!.toInt() if (number == 0) break sum += number ) print("sum = $sum") )
Когато стартирате програмата, изходът ще бъде:
Въведете число: 4 Въведете число: 12 Въведете число: 6 Въведете число: -9 Въведете число: 0 сума = 13
В горната програма тестовият израз на while
цикъла е винаги true
.
Тук while
цикълът работи, докато потребителят не въведе 0. Когато потребителят въведе 0, break
се изпълнява, което прекратява while
цикъла.
Котлин Етикетирана почивка
Това, което сте научили досега, е немаркирана форма break
, която прекратява най-близкия заграждащ цикъл. Има и друг начин, който break
може да се използва (етикетирана форма) за прекратяване на желания цикъл (може да бъде външен цикъл).
Как работи етикетираната почивка?
Етикетът в Kotlin започва с идентификатор, който е последван от @
.
Тук test @ е етикет, маркиран във външния цикъл while. Сега, като използвате break
с етикет ( break@test
в този случай), можете да прекъснете конкретния цикъл.
Ето пример:
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@first ) ) )
Когато стартирате програмата, изходът ще бъде:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Тук, когато i == 2
изразът се оценява на true
, break@first
се изпълнява, което прекратява цикъла, маркиран с етикет first@
.
Ето малка вариация на горната програма.
В програмата по-долу прекъсването прекратява цикъла, маркиран с етикет @second.
fun main(args: Array) ( first@ for (i in 1… 4) ( second@ for (j in 1… 2) ( println("i = $i; j = $j") if (i == 2) break@second ) ) )
Когато стартирате програмата, изходът ще бъде:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
Забележка: Тъй като break
се използва за прекратяване на най-вътрешния цикъл в тази програма, не е необходимо да се използва етикет break в този случай.
Има 3 структурни скок изрази в Kotlin: break
, continue
и return
. За да научите за continue
и return
изразяване, посетете:
- Котлин продължава
- Функция Kotlin