


Проверьте калькулятор на c#
Норм код?
using System;
class Calculator
{
static void Main(string[] args)
{
Console.WriteLine("Простой калькулятор");
// Получение первого числа
double num1 = GetNumber("Введите первое число:");
// Получение второго числа
double num2 = GetNumber("Введите второе число:");
// Выбор операции
char operation = GetOperation("Выберите операцию (+, -, *, /):");
// Выполнение операции
double result = PerformOperation(num1, num2, operation);
// Вывод результата
if (double.IsNaN(result))
{
Console.WriteLine("Ошибка: Неверная операция или деление на ноль!");
}
else
{
Console.WriteLine($"{num1} {operation} {num2} = {result}");
}
Console.WriteLine("Нажмите любую клавишу для выхода...");
Console.ReadKey();
}
static double GetNumber(string prompt)
{
double number;
Console.WriteLine(prompt);
while (!double.TryParse(Console.ReadLine(), out number))
{
Console.WriteLine("Некорректный ввод. Пожалуйста, введите число:");
}
return number;
}
static char GetOperation(string prompt)
{
char operation;
Console.WriteLine(prompt);
while (!char.TryParse(Console.ReadLine(), out operation) || "+-*/".IndexOf(operation) == -1)
{
Console.WriteLine("Некорректный ввод. Пожалуйста, выберите операцию (+, -, *, /):");
}
return operation;
}
static double PerformOperation(double num1, double num2, char operation)
{
switch (operation)
{
case '+':
return num1 + num2;
case '-':
return num1 - num2;
case '*':
return num1 * num2;
case '/':
return num2 != 0 ? num1 / num2 : double.NaN; // Возвращаем NaN для деления на ноль
default:
return double.NaN; // Неверная операция (хотя этот случай не должен возникнуть)
}
}
}
Вроде исправно работает, но как-то неинтуитивно выходит, что сначала вводишь два числа, а потом операцию. Напоминает польскую запись: 2 3 +.
у меня калькулятор получает в String текст: напр 1+96*8 и вычисляет выражение