Ошибки в блоках case "A constant value is expected" - C#
Формулировка задачи:
подскажите пожалуйста в чем ошибка?
Совсем недавно начал изучать С# и программирование в целом, вот вчера застрял на этом моменте: писал пару раз подглядывая в пример, в итоге ошибки в блоках case, "A constant value is expected" перевод на русский не прояснил голову)
Листинг программы
- class Program
- {
- static string GetSelection(string Print)
- {
- Console.WriteLine(Print);
- string action = Console.ReadLine();
- string GetAction = Convert.ToString(action);
- return GetAction;
- }
- static double GetAction(string Print)
- {
- Console.WriteLine(Print);
- string action = Console.ReadLine();
- double GetAction = Convert.ToDouble(action);
- return GetAction;
- }
- static void Main(string[] args)
- {
- string Ex_Action = "выход";
- string Sum_Action = "сложение";
- string Min_Action = "вычетание";
- string Mul_Action = "умножение";
- string Del_Action = "деление";
- string action = " ";
- string Hello = "Введите одну из команд: /n выход, сложение, вычетание, умножение, деление";
- do
- {
- action = GetSelection(Hello);
- if (action != Ex_Action)
- {
- switch (action)
- {
- case Del_Action:
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат сложения = " + result);
- }
- break;
- case Mul_Action:
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат умножения = " + result);
- }
- break;
- case Min_Action:
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат вычитания = " + result);
- }
- break;
- case Sum_Action:
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат сложения = " + result);
- }
- default:
- {
- Console.WriteLine("введена неизвестная команда");
- }
- break;
- }
- }
- } while (action != Ex_Action);
- }
- }
Решение задачи: «Ошибки в блоках case "A constant value is expected"»
textual
Листинг программы
- class Program
- {
- static string GetSelection(string Print) // создаем функцию принимающую нейкую строку и возвращающую то же строку
- {
- Console.WriteLine(Print);// выводим переданную строку на консоль
- string action = Console.ReadLine();// СЧИТЫВАЕМ В СТРОКУ ответ пользователя
- string GetAction = Convert.ToString(action);// КОНВЕРТИРУЕМ СТРОКУ В СТРОКУ ничего не смущает? нет? Ну ладно...
- return GetAction;// возвращаем итоговую строку.
- }
- static double GetAction(string Print)// Создаем еще одну функцию принимающую строку возвращающее число двойной точности
- {
- Console.WriteLine(Print);//выводим переданную строку на консоль
- string action = Console.ReadLine();// получаем строку ответ
- double GetAction = Convert.ToDouble(action);// конвертируем в дабл
- return GetAction;// возвращаем дабл
- }
- static void Main(string[] args)
- {
- string Ex_Action = "выход";// создаем и инициализируем строковую переменную
- string Sum_Action = "сложение";// создаем и инициализируем строковую переменную
- string Min_Action = "вычитание";// создаем и инициализируем строковую переменную
- string Mul_Action = "умножение";// создаем и инициализируем строковую переменную
- string Del_Action = "деление";// создаем и инициализируем строковую переменную
- // и все это для того что бы использовать там где переменные использовать нельзя
- string action = " ";// создаем и инициализируем строковую переменную пробелом :)
- string Hello = "Введите одну из команд: /n выход, сложение, вычитание, умножение, деление";
- do// входим в цикл
- {
- action = GetSelection(Hello);// ПЕРЕСОЗДАЕМ строку с пробелом но в этот раз заносим в нее то, что вернет нам функция
- if (action != Ex_Action)// ПРОВЕРЯЕМ ПОЛУЧЕННУЮ ИЗ ФУНКЦИИ СТРОКУ или она не равна значению переменной
- {
- switch (action)// СНОВА ПРОВЕРЯЕМ ТУ ЖЕ СТРОКУ на то что она содержит
- {
- case Del_Action: // если строка содержит... здесь все и посыпалось, потому как кейс с переменными не работает... ну допустим что это у нас константа "деление" и идем дальше
- {
- double firstValue = GetAction("введите первое число");// из функции получаем первое число
- double secondValue = GetAction("введите второе число");// из функции получаем второе число
- double result = firstValue + secondValue;// складываем оба полученных значения (ну да при делении самое оно)
- Console.WriteLine("результат сложения = " + result);// честно пишем что мы сложили числа которые просили разделить и выводим сумму
- }
- break; //выходим из кейса
- case Mul_Action:// все то же самое для умножения
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат умножения = " + result);// правда теперь мы сообщаем что выполнили то что от нас просили, но вместо умножения возвращаем сумму
- }
- break;
- case Min_Action:// снова здорова
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат вычитания = " + result);// результатом вычитания у нас опять таки служит сумма
- }
- break;
- case Sum_Action://снова переменная вместо константы
- {
- double firstValue = GetAction("введите первое число");
- double secondValue = GetAction("введите второе число");
- double result = firstValue + secondValue;
- Console.WriteLine("результат сложения = " + result);// ну и наконец мы выводим именно то что от нас просили
- }
- default:// ну и к дефаулту вопросов не имеем:)
- {
- Console.WriteLine("введена неизвестная команда");
- }
- break;
- }
- }
- } while (action != Ex_Action);// и уже в третий раз проверяем значение action
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д