Ошибки в блоках case "A constant value is expected" - C#

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

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

подскажите пожалуйста в чем ошибка? Совсем недавно начал изучать С# и программирование в целом, вот вчера застрял на этом моменте: писал пару раз подглядывая в пример, в итоге ошибки в блоках case, "A constant value is expected" перевод на русский не прояснил голову)
Листинг программы
  1. class Program
  2. {
  3. static string GetSelection(string Print)
  4. {
  5. Console.WriteLine(Print);
  6. string action = Console.ReadLine();
  7. string GetAction = Convert.ToString(action);
  8. return GetAction;
  9. }
  10. static double GetAction(string Print)
  11. {
  12. Console.WriteLine(Print);
  13. string action = Console.ReadLine();
  14. double GetAction = Convert.ToDouble(action);
  15. return GetAction;
  16. }
  17. static void Main(string[] args)
  18. {
  19. string Ex_Action = "выход";
  20. string Sum_Action = "сложение";
  21. string Min_Action = "вычетание";
  22. string Mul_Action = "умножение";
  23. string Del_Action = "деление";
  24. string action = " ";
  25. string Hello = "Введите одну из команд: /n выход, сложение, вычетание, умножение, деление";
  26. do
  27. {
  28. action = GetSelection(Hello);
  29. if (action != Ex_Action)
  30. {
  31. switch (action)
  32. {
  33. case Del_Action:
  34. {
  35. double firstValue = GetAction("введите первое число");
  36. double secondValue = GetAction("введите второе число");
  37. double result = firstValue + secondValue;
  38. Console.WriteLine("результат сложения = " + result);
  39. }
  40. break;
  41. case Mul_Action:
  42. {
  43. double firstValue = GetAction("введите первое число");
  44. double secondValue = GetAction("введите второе число");
  45. double result = firstValue + secondValue;
  46. Console.WriteLine("результат умножения = " + result);
  47. }
  48. break;
  49. case Min_Action:
  50. {
  51. double firstValue = GetAction("введите первое число");
  52. double secondValue = GetAction("введите второе число");
  53. double result = firstValue + secondValue;
  54. Console.WriteLine("результат вычитания = " + result);
  55. }
  56. break;
  57. case Sum_Action:
  58. {
  59. double firstValue = GetAction("введите первое число");
  60. double secondValue = GetAction("введите второе число");
  61. double result = firstValue + secondValue;
  62. Console.WriteLine("результат сложения = " + result);
  63. }
  64. default:
  65. {
  66. Console.WriteLine("введена неизвестная команда");
  67. }
  68. break;
  69. }
  70. }
  71. } while (action != Ex_Action);
  72. }
  73. }

Решение задачи: «Ошибки в блоках case "A constant value is expected"»

textual
Листинг программы
  1. class Program
  2. {
  3.      static string GetSelection(string Print) // создаем функцию принимающую нейкую строку и возвращающую то же строку
  4.      {
  5.           Console.WriteLine(Print);//  выводим переданную строку на консоль
  6.            string action = Console.ReadLine();// СЧИТЫВАЕМ В СТРОКУ ответ пользователя
  7.            string GetAction = Convert.ToString(action);// КОНВЕРТИРУЕМ СТРОКУ В СТРОКУ ничего не смущает? нет? Ну ладно...
  8.            return GetAction;// возвращаем итоговую строку.
  9.       }
  10.       static double GetAction(string Print)// Создаем еще одну функцию принимающую строку возвращающее число двойной точности
  11.       {
  12.             Console.WriteLine(Print);//выводим переданную строку на консоль
  13.              string action = Console.ReadLine();// получаем строку ответ
  14.              double GetAction = Convert.ToDouble(action);// конвертируем в дабл
  15.              return GetAction;// возвращаем дабл
  16.  
  17.        }
  18.  
  19.       static void Main(string[] args)
  20.       {
  21.             string Ex_Action = "выход";// создаем и инициализируем строковую переменную
  22.             string Sum_Action = "сложение";// создаем и инициализируем строковую переменную
  23.             string Min_Action = "вычитание";// создаем и инициализируем строковую переменную
  24.             string Mul_Action = "умножение";// создаем и инициализируем строковую переменную
  25.             string Del_Action = "деление";// создаем и инициализируем строковую переменную
  26. // и все это для того что бы использовать там где переменные использовать нельзя
  27.  
  28.             string action = " ";// создаем и инициализируем строковую переменную пробелом :)
  29.             string Hello = "Введите одну из команд: /n выход, сложение, вычитание, умножение, деление";
  30.  
  31.             do// входим в цикл
  32.            {
  33.                 action = GetSelection(Hello);// ПЕРЕСОЗДАЕМ строку с пробелом но в этот раз заносим в нее то, что вернет нам функция
  34.  
  35.                 if (action != Ex_Action)// ПРОВЕРЯЕМ ПОЛУЧЕННУЮ ИЗ ФУНКЦИИ СТРОКУ или она не равна значению переменной
  36.                 {
  37.                       switch (action)// СНОВА ПРОВЕРЯЕМ  ТУ ЖЕ СТРОКУ на то что она содержит
  38.                      {
  39.                            case Del_Action: // если строка содержит... здесь все и посыпалось, потому как кейс с переменными не работает... ну допустим что это у нас константа "деление" и идем дальше
  40.                           {
  41.                                 double firstValue = GetAction("введите первое число");// из функции получаем первое число
  42.                                 double secondValue = GetAction("введите второе число");// из функции получаем второе число
  43.                                 double result = firstValue + secondValue;// складываем оба полученных значения (ну да при делении самое оно)
  44.                                 Console.WriteLine("результат сложения = " + result);// честно пишем что мы сложили числа которые просили разделить и выводим сумму
  45.                           }
  46.                          break; //выходим из кейса
  47.                          case Mul_Action:// все то же самое для умножения
  48.                          {
  49.                                double firstValue = GetAction("введите первое число");
  50.                                double secondValue = GetAction("введите второе число");
  51.                                double result = firstValue + secondValue;
  52.                                Console.WriteLine("результат умножения = " + result);// правда теперь мы сообщаем что выполнили то что от нас просили, но вместо умножения возвращаем сумму
  53.                           }
  54.                           break;
  55.                           case Min_Action:// снова здорова
  56.                           {
  57.                                  double firstValue = GetAction("введите первое число");
  58.                                  double secondValue = GetAction("введите второе число");
  59.                                  double result = firstValue + secondValue;
  60.                                  Console.WriteLine("результат вычитания = " + result);// результатом вычитания у нас опять таки служит сумма
  61.                             }
  62.                             break;
  63.                            case Sum_Action://снова переменная вместо константы
  64.                            {
  65.                                   double firstValue = GetAction("введите первое число");
  66.                                   double secondValue = GetAction("введите второе число");
  67.                                   double result = firstValue + secondValue;
  68.                                   Console.WriteLine("результат сложения = " + result);// ну и наконец мы выводим именно то что от нас просили
  69.                            }
  70.                             default:// ну и к дефаулту вопросов не имеем:)
  71.                             {
  72.                                    Console.WriteLine("введена неизвестная команда");
  73.                             }
  74.                             break;
  75.                       }
  76.                }
  77.          } while (action != Ex_Action);// и уже в третий раз проверяем значение action
  78.     }
  79. }

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


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

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

13   голосов , оценка 4 из 5

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

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

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