Код IT
← Каталог

Калькулятор на CSharp — Расширенная реализация с циклом и повторным использованием

Фрагмент из «Калькулятор на CSharp»: Расширенная реализация с циклом и повторным использованием.

C# main.cs
using Система;

class AdvancedCalculator
{
    static void Main()
    {
        Console.WriteLine("=== Расширенный калькулятор ===");
        Console.WriteLine("Поддерживаемые операции: +, -, *, /");
        Console.WriteLine("Введите 'exit', чтобы завершить работу.\n");

        while (true)
        {
            Console.Write("Первое число: ");
            string input1 = Console.ReadLine();
            if (input1?.ToLower() == "exit") break;

            if (!double.TryParse(input1, out double num1))
            {
                Console.WriteLine("Некорректное число. Попробуйте снова.\n");
                continue;
            }

            Console.Write("Операция (+, -, *, /): ");
            string op = Console.ReadLine();
            if (op?.ToLower() == "exit") break;

            Console.Write("Второе число: ");
            string input2 = Console.ReadLine();
            if (input2?.ToLower() == "exit") break;

            if (!double.TryParse(input2, out double num2))
            {
                Console.WriteLine("Некорректное число. Попробуйте снова.\n");
                continue;
            }

            double? result = PerformCalculation(num1, op, num2);
            if (result.HasValue)
            {
                Console.WriteLine($"Результат: {num1} {op} {num2} = {result.Value}\n");
            }
            else
            {
                Console.WriteLine("Ошибка: неверная операция или деление на ноль.\n");
            }
        }

        Console.WriteLine("Работа калькулятора завершена.");
    }

    static double? PerformCalculation(double a, string operation, double b)
    {
        return operation switch
        {
            "+" => a + b,
            "-" => a - b,
            "*" => a * b,
            "/" when b != 0 => a / b,
            _ => null
        };
    }
}
using Система;

class AdvancedCalculator
{
    static void Main()
    {
        Console.WriteLine("=== Расширенный калькулятор ===");
        Console.WriteLine("Поддерживаемые операции: +, -, *, /");
        Console.WriteLine("Введите 'exit', чтобы завершить работу.\n");

        while (true)
        {
            Console.Write("Первое число: ");
            string input1 = Console.ReadLine();
            if (input1?.ToLower() == "exit") break;

            if (!double.TryParse(input1, out double num1))
            {
                Console.WriteLine("Некорректное число. Попробуйте снова.\n");
                continue;
            }

            Console.Write("Операция (+, -, *, /): ");
            string op = Console.ReadLine();
            if (op?.ToLower() == "exit") break;

            Console.Write("Второе число: ");
            string input2 = Console.ReadLine();
            if (input2?.ToLower() == "exit") break;

            if (!double.TryParse(input2, out double num2))
            {
                Console.WriteLine("Некорректное число. Попробуйте снова.\n");
                continue;
            }

            double? result = PerformCalculation(num1, op, num2);
            if (result.HasValue)
            {
                Console.WriteLine($"Результат: {num1} {op} {num2} = {result.Value}\n");
            }
            else
            {
                Console.WriteLine("Ошибка: неверная операция или деление на ноль.\n");
            }
        }

        Console.WriteLine("Работа калькулятора завершена.");
    }

    static double? PerformCalculation(double a, string operation, double b)
    {
        return operation switch
        {
            "+" => a + b,
            "-" => a - b,
            "*" => a * b,
            "/" when b != 0 => a / b,
            _ => null
        };
    }
}