【问题标题】:Building simple calculator with C#用 C# 构建简单的计算器
【发布时间】:2021-03-14 12:53:30
【问题描述】:

我正在尝试在 C# 上构建一个非常简单的计算器,我想将结果存储在变量“result”中并通过 Console.WriteLine(result) 显示它。由于某种原因,不允许使用 Console.WriteLine(result)。

using System;

namespace Giraffe
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("insert number1");
            double num1 = Convert.ToDouble(Console.ReadLine());

            Console.WriteLine("insert operator");
            string op = Console.ReadLine();

            Console.WriteLine("insert number2");
            double num2 = Convert.ToDouble(Console.ReadLine());
         
            if (op == "+")
            {
                double result = num1 + num2;
            }

            else if(op == "-")
            {
                double result = num1 - num2;
            }

            else if (op == "*")
            {
                double result = num1 * num2;
            }

            else if (op == "/")
            {
                double result = num1 / num2;
            }


            Console.WriteLine(result);


        }
     
    }
}

非常感谢

【问题讨论】:

  • 提示:你声明了四个独立的局部变量,每个变量都称为result,它们在声明它的块之外都不可用。我怀疑你想要 one 变量,在if 语句之前声明,并在每个if 语句主体中分配一个值。如果op 不是您编码的情况之一,您还应该计算出您想要的结果。
  • 似乎您可能想阅读变量范围(也许this tutorial 会有所帮助)。 TLDR 是:由于您声明了 double result _inside_your if-blocks,因此它在您离开该块后基本上停止存在。你必须把声明移到外面。
  • 这能回答你的问题吗? Variable scope confusion in C#

标签: c# calculator


【解决方案1】:

在if声明之外声明double result

static void Main(string[] args)
    {

        Console.WriteLine("insert number1");
        double num1 = Convert.ToDouble(Console.ReadLine());

        Console.WriteLine("insert operator");
        string op = Console.ReadLine();

        Console.WriteLine("insert number2");
        double num2 = Convert.ToDouble(Console.ReadLine());

        double result = 0;

        if (op == "+")
            result = num1 + num2;
        else if (op == "-")
            result = num1 - num2;
        else if (op == "*")
            result = num1 * num2;
        else if (op == "/")
            result = num1 / num2;
        Console.WriteLine(result);
    }

【讨论】:

  • 是的,这是正确的,但它有助于 OP 理解它的问题吗?您可以添加一些行来解释为什么需要在该位置声明变量。
猜你喜欢
  • 1970-01-01
  • 2015-09-18
  • 1970-01-01
  • 2021-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多