#16. Оператор switch множественного выбора. Ключевое слово break | Язык C для начинающих

Поділитися
Вставка
  • Опубліковано 24 гру 2024

КОМЕНТАРІ • 26

  • @dmitriipopovich5228
    @dmitriipopovich5228 Рік тому +2

    круто, спасибо большое за уроки, знания должны быть доступны для всех!

  • @lifelessmad
    @lifelessmad Рік тому +4

    Сергей, у вас очень хорошие и понятные видео, успехов вам в дальнейшем!!!

  • @siarheiulas6969
    @siarheiulas6969 6 місяців тому +2

    Спасибо за ваши видео! В них всё объяснено очень доходчиво.

  • @donfedor007
    @donfedor007 Рік тому +1

    Доброе время суток ! Спасибо очень интересно и доступно!

  • @xton.
    @xton. 5 місяців тому +2

    круть, лучший курс на ютубе

  • @andredru4278
    @andredru4278 11 місяців тому +2

    Спасибо. Удивительно!

  • @weerbox
    @weerbox Рік тому +3

    Как всегда 👍 за видео. Но как мне кажется, было бы проще (и понятнее) объяснить почему именно так работает switch, если перед этим рассказать про goto и метки. И как вытекающие из сказанного, можно было рассказать, почему после case допускается не использовать объединение инструкций в блоки {}, и почему в таком случае нельзя после case объявить переменную.

  • @РусланКарнеенко

    Спасибо. Очень доступно объяснили.

  • @faridnadirov5472
    @faridnadirov5472 9 місяців тому +1

    Спасибо за подробное объяснение!

  • @jamjam3337
    @jamjam3337 Рік тому +1

    спасибо!👏👍

  • @olegkomlev
    @olegkomlev Рік тому

    Частая ошибка начинающих - забывать break. Почти всегда в ветви switch нужен break, и редко, когда нет. Например, в языке Go есть похожий по синтаксису switch, но break там не нужен, он подразумевается автоматически. Также, в языке Паскаль есть похожий оператор case-of , в котором каждая ветвь заканчивается сразу, без использования break. Кроме того, в Паскале можно в качестве селектора указать еще и диапазон, а не просто одну константу. В Си в этом случае приходится либо перечислять все значения диапазона
    ...
    case 2: case 3: case 4: case 5:
    ...
    либо использовать вложенные if вместо switch.

  • @АндрейИванов-е6о4т

    👍

  • @ОлькаВикторова-ж5у
    @ОлькаВикторова-ж5у 7 місяців тому +1

    у меня возник вопрос. Почему нужно прописывать break после каждого case, если он и так после выбора варианта 3 в данном примере должен, казалось бы, перейти сразу к return?

    • @selfedu_rus
      @selfedu_rus  7 місяців тому

      нет, он продолжает просматривать остальные, если нет break

  • @AlekseiPlekhanov
    @AlekseiPlekhanov Рік тому +1

    33 строка, если break не писать, все равно все сработает, или так нельзя?

  • @donfedor007
    @donfedor007 Рік тому +1

    Добрый день! Как понять когда switch , а когда if ?

    • @selfedu_rus
      @selfedu_rus  Рік тому +1

      Очень просто, если есть множество константных вариантов, то можно подумать о switch, иначе только if.

    • @donfedor007
      @donfedor007 Рік тому

      @@selfedu_rus если переменные, то однозначно if, а константы switch. Все понял спасибо

  • @vladlite2683
    @vladlite2683 Рік тому

    Можете пожалуйста подсказать, почему при использовании в case еще одного оператора switch программа может выполнять не то, что нужно или вызывать ошибки. Можно ли это исправить и как лучше все таки писать, чтобы например кейс вызывал еще один интерфейс, в котором также реализован выбор каких-либо действий

    • @selfedu_rus
      @selfedu_rus  Рік тому

      Вложенные switch - очень плохая практика. Лучше вызывайте их через функции, если уж очень нужно. Но и вложенный должен работать. Если что то не так, значит, где то ошибка.

  • @AlexLipkovich
    @AlexLipkovich 4 місяці тому +2

    Зачем это нужно вообще, использую всегда череду if() {} это и гибче и понятнее...Я бы понят если бы компилятор не сравнивал каждый вариант, а просто прирастил счётчик и сразу ушёл на нужное место, одним цикломпроцессора, но так оно не работает...

  • @ДмитрийСмирнов-л6э3л

    В этой программе проверка функции scanf бесполезна при любых значениях она игнорируется что угодно можно ввести и она это пропустит и только switch выдаст ошибку если не будет нужного символа
    int main(void)
    {
    char item ;
    if(scanf("%c",&item)!=1){
    printf("Error!!!
    ");
    return 0;
    }
    switch (item)
    {
    case 'a':
    case 'A':
    printf("simvol A
    ");
    break;
    case 'b':
    case 'B':
    printf("simvol B
    ");
    break;
    case 'c':
    case 'C':
    printf("simvol C
    ");
    break;
    case 'd':
    case 'D':
    printf("simvol D
    ");
    break;
    default:
    printf("Error!!!!
    ");
    break;
    }
    return 0;
    }

  • @nightwitch698
    @nightwitch698 2 місяці тому

    Зачем вводить бесполезную проверку scanf, которая не работает?

  • @donfedor007
    @donfedor007 Рік тому +1

    Добрый день! Как определить когда switch, а когда if?