Программа напечатает 01234 без перевода строки. Break завершает ближайший switch, а не внешний цикл for.
Какой результат выведет программа в примере №76
Программа напечатает 01234 без перевода строки. Break завершает ближайший switch, а не внешний цикл for.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите, какой набор символов будет напечатан в консоль после выполнения следующей программы:
package main
import "fmt"
func main() {
for i :=0; i < 5; i++{
fmt.Printf("%d",i)
switch i {
default:
case 2:
break
}
}
}
Ответ
Программа напечатает 01234 без перевода строки. Break завершает ближайший switch, а не внешний цикл for.
На каждой итерации число печатается до switch. Для i=2 выполняется break, после чего цикл переходит к следующему значению; для остальных работает пустая default-ветка. Чтобы закончить цикл, используйте метку у for и break с её именем либо явно измените структуру управления.