C# 控制台应用简单计算器不起作用

本文关键字:计算器 不起作用 简单 应用 控制台 | 更新日期: 2023-09-27 18:35:21

我试图用函数进行计算,但是当我想返回我的值"计算"时,它将给出函数中变量的值为 0 而不是计算。此外,当我编写正确的运算符时,还会显示默认文本。

  static void Main(string[] args)
    {
        string input1,input2,opera,product = "";
        Int32 v,n;
        Console.WriteLine("please insert first number: ");
        input1 = Console.ReadLine();
        Console.WriteLine("please insert second number: ");
        input2 = Console.ReadLine();
        if (numeric(input1, out v) && numeric(input2, out n))
        {
            Console.WriteLine("give operator: *, /, -, +");
            opera = Console.ReadLine();
            Console.WriteLine(operat(product));

        }
     private static string operat(string oper){
        double input1 = 0, input2 = 0;
        double calculation = 0;
        switch (oper)
        {
            case "*":
                calculation += input1 * input2;
                break;
            case "/":
                calculation += input1 / input2;
                break;
            case "+":
                calculation += input1 + input2;
                break; ;
            case "-":
                calculation += input1 - input2;
                return calculation.ToString();
            default:
                Console.WriteLine("you gave the write operator...");
                break;
        }
        return calculation.ToString();

只需忽略数字函数...

C# 控制台应用简单计算器不起作用

仅仅因为你在不同的函数(input1input2)中将变量命名为相同,并不意味着它们将具有相同的值。事实上,它们甚至没有相同的类型!尝试删除=0部分以亲自查看它,编译器会告诉您它从未被分配给。

你想要的是只让变量在 main 函数中保存操作数和运算符,并将它们传递给你的工作函数。

将操作函数更改为

private static string operat(string oper,double input1,double input2)

并删除此行

double input1 = 0, input2 = 0;

并调用操作函数

operat(opera,double.Parse(input1),double.Parse(input2));

重构静态 void main 到 class 字段中的 input1 和 input2。在操作方法中使用这些引用。运算符方法中的 input1 和 input2 变量不保存静态 void main 方法中捕获的值。这些只是方法的局部变量