Разобраться с программой со Switch - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте. Не могу понять,как работает программа. Был бы рад,если бы кто-то объяснил,что при выборе каждого элемента будет происходить..
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main()
  4. {
  5. int i,c;
  6. char input[]="tratata2\3\141ZW\1hopa";
  7. for(i=2;(c=input[i])!='\0';i++)
  8. {
  9. switch(c) {
  10. case 'a': putchar('i'); continue;
  11. case '2': break;
  12. case 1:
  13. case 3 : putchar('A');break;
  14. case 141 : putchar('B');
  15. case 'E': case 'K' : continue;
  16. default : putchar(c); continue;
  17. }
  18. putchar('_');
  19. }
  20. putchar('\n');
  21. getchar();
  22. }

Решение задачи: «Разобраться с программой со Switch»

textual
Листинг программы
  1. for(i=0;(c=input[i])!='\0';i++)
  2. {
  3.  
  4. switch(c) {
  5. case 'a': putchar('i'); continue;// если считывается символ 'a', т.е. коды совпали, то выводит 'i' и проскакиваются оставшиеся операторы цикла
  6. case '2': break;// если с читывается '2' то происходит прерывание работы switch
  7. case   1:// если считывается 1, то срабатывает case  3 , выводится 'A',происходит прерывание работы switch, и вывод '_'
  8. case  3 :  putchar('A');break;// если считывается 3, то выводится 'A'
  9. case  141 : putchar('B');// если полученный символ есть 'H', то выводится 'B'
  10. case 'E': case 'K' : continue;// если получаем 'E' или 'K' то просто проскакиваем итерацию
  11. default : putchar(c); continue;// если ввели что то, отличное от того, что ранее описано, то выводим полученный символ на экран и проскакиваем операторы, расположенные ниже
  12. }
  13. putchar('_');//сюда добераемся только в случае, если попали в ветвь с break
  14. }

Объяснение кода листинга программы

  1. for(i=0;(c=input[i])!='\0';i++) - это цикл, который читает символы из входного массива input до тех пор, пока не встретит символ '\0'. Переменная i используется для отслеживания индекса текущего символа, а c - для хранения текущего символа.
  2. switch(c) { - это оператор switch, который проверяет, какой код соответствует текущему символу c.
  3. case 'a': putchar('i'); continue; - если текущий символ c равен 'a', то выводится символ 'i' и выполнение программы переходит к следующей итерации цикла (за счет оператора continue).
  4. case '2': break; - если текущий символ c равен '2', то выполнение программы прерывается и переходит к следующей итерации цикла (за счет оператора break).
  5. case   1: putchar('A'); break; - если текущий символ c равен 1, то выводится символ 'A' и выполнение программы прерывается и переходит к следующей итерации цикла (за счет оператора break).
  6. case  141: putchar('B'); - если текущий символ c равен 141 (или 'B'), то выводится символ 'B'.
  7. case 'E': case 'K': continue; - если текущий символ c равен 'E' или 'K', то выполнение программы прерывается и переходит к следующей итерации цикла (за счет оператора continue).
  8. default: putchar(c); continue; - если текущий символ c не соответствует ни одному из предыдущих случаев, то он выводится на экран и выполнение программы прерывается и переходит к следующей итерации цикла (за счет оператора continue).
  9. putchar('_'); - выводится символ '_'. Это происходит только в том случае, если выполнение программы достигло оператора break. Пожалуйста, обратите внимание, что порядок и количество элементов в списке могут быть изменены в зависимости от конкретного ввода.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут