cpp

Оператор break: прерывание цикла

Оператор break позволяет прервать выполнение цикла досрочно. Для примера выведем все числа от 1 до 100 еще одним способом:

var i int = 1
for {
   if i > 100 {
      break
   }
   fmt.Println(i)
   i++
}

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

Обратите внимание

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

LABEL:
for i := 1; i <= 5; i++ {
   for j := 1; j <= 10; j++ {
      if j > 3 {
         break LABEL
      }
      fmt.Println(i, j)
   }
}

Бесконечный цикл совместно с оператором break удобно использовать для получения неопределенного заранее количества данных от пользователя. В качестве примера просуммируем неопределенное количество целых чисел (листинг 3.5).

Листинг 3.5. Суммирование неопределенного количества чисел

package main

import (
   "bufio"
   "fmt"
   "os"
)

func main() {
   x, sum := 0, 0
   fmt.Println("Введите число 0 для получения результата")
   for {
      fmt.Print("Введите число: ")
      _, err := fmt.Scanln(&x)
      if err != nil {
         fmt.Fprintln(os.Stderr, "Вы ввели не число")
         // Очищаем поток
         scanner := bufio.NewScanner(os.Stdin)
         scanner.Scan()
         continue
      }
      if x == 0 {
         break
      }
      sum += x
   }
   fmt.Println("Сумма чисел равна:", sum)
}

Учебник Go (Golang)
Учебник Go (Golang) в формате PDF

Помощь сайту

ЮMoney (Yandex-деньги): 410011140483022

ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов

cpp