尝试为我的C#类制作基本的ATM程序。
简而言之,程序有4个帐户,它们已经存储了整数值。程序必须首先显示用户想要采取的操作(显示余额,提取,转移),然后将用户带到选定的菜单,并允许他们在程序中执行他们希望的任何任务。
我的Display Balance menu
遇到了问题。想询问用户是否要显示另一个余额,然后重新启动“显示余额”菜单部分(此处的代码部分)。这就是我所拥有的:
if (ACCselect == 1)
{
string yesno1 = " ";
int dispSEL = 1;
Console.WriteLine();
Console.WriteLine("$$$===Display Balance===$$$");
Console.WriteLine();
Console.WriteLine("\t 1) Savings Account");
Console.WriteLine("\t 2) Debit Card Account");
Console.WriteLine("\t 3) Credit Card Account");
Console.WriteLine("\t 4) Investment Account");
Console.WriteLine();
Console.Write("Select account with 1-4: ");
dispSEL = int.Parse(Console.ReadLine());
DisplayBalance(dispSEL);
Console.WriteLine();
Console.Write("Would you like to select another account? (y/n): ");
yesno1 = Console.ReadLine();
if (yesno1.ToUpper() == "Y")
{
yesno1a = true;
}
else
{
Main();
}
} while (yesno1a == true)
这是Main()
的一部分。 ACCselect指的是用户选择的选择,是否需要显示余额,提取等
DisplayBalance()
方法从数组中选择适当的整数值并显示相应的余额。
如果用户选择“y”,如何让我的程序重复此部分代码? 如果用户选择“n”,它将循环回Main()方法的顶部。
任何帮助都会非常有用。
答案 0 :(得分:0)
我正在回答这个问题,因为我在第一年做了类似的事情,我也犯了类似的错误。
首先,您要调用Main
以“跳转”到Main
的开头。这样可行,但它会为您提供Main
的嵌套调用。 Main
已经变为递归。退出内部Main
调用后,您将跳转到仍在运行的外部Main
。尝试回答“n”,然后尝试退出该程序。你必须退出两次。
如果要在条件为真之前重复操作,可以使用此模式:
while(true) { //loop forever
if (SomeCondition()) break; //exit
else {
DoStuff();
}
}
适用于您的问题,它是这样的:
while(true) { //loop forever
dispSEL = int.Parse(Console.ReadLine());
DisplayBalance(dispSEL);
Console.Write("Would you like to select another account? (y/n): ");
yesno1 = Console.ReadLine();
if (yesno1 == "n") break; //exit
else continue; //next loop iteration
}
希望有所帮助。请随意在评论中提出后续问题。