Member 13511741 Ответов: 1

Консольная программа C#пишет калькулятор


Консольная программа пишет acalculator для удовлетворения сложения и вычитания умножения

Что я уже пробовал:

    Console.Write("请输入数A");
    float n = float.Parse(Console.ReadLine());
    Console.WriteLine();
   // Console.Write("请选择符号(+,-,*,/,%):");

    Console.WriteLine();
    Console.Write("请输入数B");
    float m = float.Parse(Console.ReadLine());
    string k = "";
switch (k)
{
    case "*": float x = m * n; break;
    case "/": float y = m / n; break;
    case "+": float z = m + n; break;
    case "-": float w = m - n; break;
    case "%": float q = m % n; break;
}
            //Console.Write("");

1 Ответов

Рейтинг:
4

OriginalGriff

Нет, это не сработает.
Посмотрите на свой код, и очевидно, что он не прав: какой из операторов switch будет выполнен? Никто из них - потому что k это всегда пустая строка.

Для начала, не используйте float.parse для преобразования чисел: используйте float.TryParse или лучше, используйте double.TryParse вместо. И то, что я бы предложил, - это написать метод для возврата числа:

private static double GetNumber(string prompt)
   {
   double result;
   do
      {
      Console.WriteLine(prompt);
      string inp = Console.ReadLine();
      if (double.TryParse(inp, out result))
         {
         break;
         }
      Console.WriteLine("I'm sorry, but that wasn't a valid number. Please try again.");
      } while (true);
   return result;
   }
Затем вы можете вызвать его дважды, чтобы получить два операнда.
Затем используйте консоль.Readline, чтобы принести оператору, и выполнить инструкцию переключиться на пользовательский ввод.


Karthik_Mahalingam

5

George Swan

разве так не должно быть
Приставка.метод WriteLine

OriginalGriff

- Что? Вы хотите, чтобы я нашел клавишу SHIFT *дважды* в одном и том же слове? :смеяться: