基本c#计算器练习-“使用未赋值的局部变量”错误
本文关键字:赋值 局部变量 错误 计算器 练习 基本 | 更新日期: 2023-09-27 18:02:23
我正在用一个非常基本的计算器脚本练习开关语句,但我很困惑为什么我的最后一行写出浮点变量结果正在接收错误:"使用未分配的局部变量"。是的,有更好的方法来制作一个包含循环的计算器,我接下来想尝试一下,但现在它是c#的婴儿步骤。下面是我的代码,谢谢大家!
namespace Calculator
{
class Program
{
static void Main(string[] args)
{
// Greeting.
Console.WriteLine ("Welcome to the basic calculator");
// Get first value.
Console.WriteLine ("Enter the first value.");
string firstValueAsText = Console.ReadLine ();
float a = Convert.ToSingle (firstValueAsText);
// Get second value.
Console.WriteLine ("Enter the second value.");
string secondValueAsText = Console.ReadLine ();
float b = Convert.ToSingle (secondValueAsText);
// Prompt operation.
Console.WriteLine ("Enter '+', '-', '*', '/', '^'.");
string operation = Console.ReadLine ();
// Establishing the result and error variables for later.
float result;
string error = "ERROR";
// Define switch operations.
switch (operation)
{
case "+":
result = a + b;
break;
case "-":
result = a - b;
break;
case "*":
result = a * b;
break;
case "/":
result = a / b;
break;
case "^":
result = (float)Math.Pow(a, b);
break;
default:
Console.WriteLine (error);
break;
}
// Print the result.
Console.WriteLine (a + " " + operation + " " + b + " = " + result);
Console.ReadKey ();
}
}
}
如果用户输入无效的操作,它将进入default:
流。在这种情况下,result
将永远不会被分配。
你可以这样做:
float result = 0;
或:
default:
Console.WriteLine (error);
result = 0;
break;
您没有初始化变量result
,并且它没有在所有执行路径上分配。您可以通过在声明时初始化它来克服此编译器错误:
float result = 0;
…或者在交换机的default
路径中设置:
default:
result = 0;
Console.WriteLine(error);
break;
如果用户输入了一些不寻常的内容那么它就会变成default
,所以你可以通过
default:
{
Console.WriteLine (error);
result = 0;
break;
}