Котлин с надписью перерыв

Котлин с надписью перерыв

#Kotlin


При работе с циклами скажем, что вы хотите немедленно остановить выполнение цикла, если выполняется определенное условие. В этом случае вы можете использовать выражение break или return для выхода из цикла.

В этой статье мы узнаем, как использовать выражение break для выхода из цикла. Когда выражение прерывания встречается в программе, оно заканчивается в ближайшем замкнутом цикле.


В Kotlin есть два типа выражения:

  1. Помеченный перерыв
  2. Немеченый разрыв

 помеченный разрыв используется для завершения желаемого цикла, когда выполняется определенное условие. Это можно сделать с помощью ярлыков. Идентификатор, за которым следует знак @ называется меткой eg-inner @, external @, first @, second @ и т. Д. Вы можете использовать метку с любым выражением, и оно должно быть написано перед ним.

Мы собираемся узнать, как использовать помеченное выражение break в циклах while, do-while и for.

Использование маркированного разрыва в цикле while —

Помеченный разрыв используется для выхода в нужный блок, когда он удовлетворяет определенному условию, без проверки условия в цикле while. Затем передает управление следующему утверждению блока while.

Если вы пометите внешний цикл с помощью метки external @, то вы можете легко разорвать внешний цикл, используя break@outer в блоке условия прерывания.

Синтаксис помеченного разрыва в цикле

outer@ while(condition) {
      // code
      inner@ while(condition) {
            // code
            if(break condition) {
               break @outer
            } 
      }
}

Kotlin программа использования цикла break в while —


fun main(args: Array<String>) {

    var num1 = 4

    outer@ while (num1 > 0) {

        var num2 = 4

        inner@ while (num2 > 0) {

            if (num1==2)

                break@outer

            println("num1 = $num1, num2 = $num2")

            num2--

        }

        num1--

    }

}

Выход:

num1 = 4, num2 = 4
num1 = 4, num2 = 3
num1 = 4, num2 = 2
num1 = 4, num2 = 1
num1 = 3, num2 = 4
num1 = 3, num2 = 3
num1 = 3, num2 = 2
num1 = 3, num2 = 1

Когда (num1 == 2) выражение оценивается как истинное, выполняется break @ outer, которое завершает нужный цикл, помеченный outer@ .

Использование помеченного перерыва в цикле do-while —

В цикле do-while также выполняется помеченный разрыв для завершения нужного цикла. Здесь мы использовали outer@ для внешнего do-while и inner@ для внутреннего цикла do-while.

Синтаксис помеченного прерывания в цикле do-while —

outer@ do {
       // code
       inner@ do {
           // code
           if(break condition) {
              break@outer
           }
       } while(condition)
} while(condition)

Программа Kotlin по использованию помеченного break в цикле do-while


fun main(args: Array<String>) {

    var num1 = 4

    outer@ do {

        var num2 = 4

  

        inner@ do {

            if (num1 == 2)

                break@outer

            println("num1 = $num1; num2 = $num2")

            num2--

        } while (num2 > 0)

        num1--

    } while (num1 > 0)

}

Выход:

num1 = 4; num2 = 4
num1 = 4; num2 = 3
num1 = 4; num2 = 2
num1 = 4; num2 = 1
num1 = 3; num2 = 4
num1 = 3; num2 = 3
num1 = 3; num2 = 2
num1 = 3; num2 = 1

Здесь мы печатаем тот же вывод, что и в цикле while. Когда (num1 == 2) выражение оценивается как истинное, выполняется break @ outer, которое завершает нужный цикл, помеченный outer@ .

Использование маркированного взлома для цикла —

В цикле for мы также можем использовать помеченный разрыв, чтобы завершить нужный цикл для определенного условия. Мы обозначили внешний цикл for как внешний @, а внутренний цикл for как внутренний @. В цикле for итерация выполняется через итератор.

Синтаксис помеченного разрыва цикла for —

outer@ for(iteration through iterator) {
    // code
      inner@ for(iteration through iterator)
           // code
          if(break condition) {
          break@outer
          }
      }
}

Kotlin программа использования помеченного разрыва в for-loop-


fun main(args: Array<String>) {

    outer@ for (num1 in 4 downTo 1) {

  

        inner@ for (num2 in 4 downTo 1) {

            if (num1 == 2)

                break@outer

            println("num1 = $num1; num2 = $num2")

        }

    }

}

Выход:

num1 = 4; num2 = 4
num1 = 4; num2 = 3
num1 = 4; num2 = 2
num1 = 4; num2 = 1
num1 = 3; num2 = 4
num1 = 3; num2 = 3
num1 = 3; num2 = 2
num1 = 3; num2 = 1


Report Page