Что выведет программа после выполнения?

Сообщения
1,533
Реакции
271
Веб-сайт
tehadm.ru
Код:
package main

import (
    "fmt"
)

func main() {
    var c float32 = 9
    switch {
    case 1 <= c && c <= 9:
        fmt.Print("от 1 до 9 ")
        c--
        fallthrough
    case c == 10.2:
        fmt.Print("пройден ")
        fmt.Print(c)
    case 100 <= c && c <= 250:
        fmt.Print("от 100 до 250 ")
        fmt.Print(c)
    case 1000 <= c && c <= 6000:
        c += 999
        fmt.Print("от 1000 до 6000 ")
        fallthrough
    default:
        fmt.Print("default ")
    }
}
 
Вывод будет: от 1 до 9 пройден 8

  1. изначально у нас с=9
  2. заходим в switch
  3. case 1 <= c && c <= 9 выполняется, а значит:
    - мы выполняем условие самого case
    - выводим "от 1 до 9 "
    - выполняем с-- , теперь с=8
    - выполняем следующее условие case "насильно", т.к. прописана команда fallthrough
  4. т.к. условие не важно:
    - выводим "пройден "
    - выводим значение с, который равен 8 (читай 3й пункт)
  5. условие case 100 <= c && c <= 250 не выполняется, пропускаем (не заходим в него)
  6. условие case 1000 <= c && c <= 6000 не выполняется, пропускаем (не заходим в него)
  7. т.к. case был "запущен", default не запускается
  8. выходим из switch, который выводит нам: от 1 до 9 пройден 8
 
Назад
Сверху Снизу