所以基本上每當我嘗試更改 while 回圈內的變數“restart”時,它都會給我一個錯誤,提示“無法在此范圍內宣告名為 'restart' 的本地或引數,因為該名稱用于封閉的本地范圍來定義本地或引數”。如果有人知道如何解決這個問題,請告訴我
public class Program
{
public static void Main()
{
bool restart = true;
while (restart == true)
{
Console.WriteLine("please enter Multiply, Divide, Add Or Subtract");
string Method = Console.ReadLine();
if (Method == "Add")
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(numberOne numberTwo);
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
bool restart = Convert.ToBoolean(Console.ReadLine());
}
else if (Method == "Subtract")
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(numberOne - numberTwo);
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
bool restart = Convert.ToBoolean(Console.ReadLine());
}
else if (Method == "Multiply")
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(numberOne * numberTwo);
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
bool restart = Convert.ToBoolean(Console.ReadLine());
}
else if (Method == "Divide")
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(numberOne / numberTwo);
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
bool restart = Convert.ToBoolean(Console.ReadLine());
}
else
{
Console.WriteLine("error found");
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
bool restart = Convert.ToBoolean(Console.ReadLine());
}
}
}
}```
uj5u.com熱心網友回復:
讓我們看一下您的代碼的這一部分:
bool restart = true;
while (restart == true)
{
// Some stuff omitted...
bool restart = Convert.ToBoolean(Console.ReadLine());
}
你重新申報 restart。相反,您應該像這樣分配它(bool在首次宣告后使用變數時不要使用):
restart = Convert.ToBoolean(Console.ReadLine());
uj5u.com熱心網友回復:
你需要這樣的東西:
bool restart = true;
while (restart)
{
Console.WriteLine("please enter Multiply, Divide, Add Or Subtract");
string method = Console.ReadLine();
if (new[] { "Multiply", "Divide", "Add", "Subtract" }.Contains(method))
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
if (method == "Add")
{
Console.WriteLine(numberOne numberTwo);
}
else if (method == "Subtract")
{
Console.WriteLine(numberOne - numberTwo);
}
else if (method == "Multiply")
{
Console.WriteLine(numberOne * numberTwo);
}
else if (method == "Divide")
{
Console.WriteLine(numberOne / numberTwo);
}
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
restart = Convert.ToBoolean(Console.ReadLine());
}
else
{
Console.WriteLine("error found");
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
restart = Convert.ToBoolean(Console.ReadLine());
}
}
或這個:
Dictionary<string, Func<double, double, double>> operations =
new Dictionary<string, Func<double, double, double>>()
{
{ "Add", (x, y) => x y },
{ "Subtract", (x, y) => x - y },
{ "Multiply", (x, y) => x * y },
{ "Divide", (x, y) => x / y },
};
bool restart = true;
while (restart)
{
Console.WriteLine($"Please enter one of: {String.Join(", ", operations.Keys)}");
string method = Console.ReadLine();
if (operations.ContainsKey(method))
{
Console.WriteLine("Please Enter First Number");
double numberOne = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please Enter The Second Number");
double numberTwo = Convert.ToDouble(Console.ReadLine());
Console.WriteLine(operations[method](numberOne, numberTwo));
}
else
{
Console.WriteLine("error found");
}
Console.WriteLine("Would You Like To Use The Calculator Again? (true = yes, false = no)");
restart = Convert.ToBoolean(Console.ReadLine());
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/372164.html
