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();
只需忽略数字函数...
仅仅因为你在不同的函数(input1
和input2
)中将变量命名为相同,并不意味着它们将具有相同的值。事实上,它们甚至没有相同的类型!尝试删除=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 方法中捕获的值。这些只是方法的局部变量