【发布时间】: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