这是我的代码,我知道它很丑,但我很新,我想弄清楚如何保持循环重复直到用户完成,并选择退出。目的是输入员工姓名,工资率和工作小时数,将其保存到列表中,然后询问用户是否需要添加其他用户,或者是否编辑用户,或退出程序。
namespace ConsoleApp1
{
class Program
{
static string Name()
{
string name;
List<string> nameList = new List<string>();
Console.Write("What is the employees name? ");
name = Console.ReadLine();
nameList.Add(name);
return "";
}
private static int Numbers()
{
int hours;
int pay;
int payroll;
List<int> payList = new List<int>();
List<int> hoursList = new List<int>();
Console.Write("What is the pay rate for the employee? ");
pay = Convert.ToInt32(Console.ReadLine());
payList.Add(pay);
Console.Write("How many hours did the employee work? ");
hours = Convert.ToInt32(Console.ReadLine());
hoursList.Add(hours);
payroll = pay * hours;
Console.Write("Pay the employee: " + payroll);
return pay;
}
static void Main()
{
Name();
Numbers();
Console.Write("\nDo you need to add another employee? Y or N\n");
string choice = Console.ReadLine();
if (choice == "Y")
{
Name();
Numbers();
Console.Write("\nDo you need to add another employee? Y or N\n");
choice = Console.ReadLine();
if(choice == "N")
{
Console.Write("\nDo you want to edit (E) an entry, or exit (X) the program? ");
string secondChoice = Console.ReadLine();
if (secondChoice == "X")
{
Environment.Exit(0);
}
if (secondChoice == "E")
{
Name();
Numbers();
}
}
}
else
{
Console.Write("\nDo you want to edit (E) an entry, or exit (X) the program? ");
string secondChoice = Console.ReadLine();
if (secondChoice == "X")
{
Environment.Exit(0);
}
if(secondChoice == "E")
{
Name();
Numbers();
}
}
Console.ReadKey();
}
}
}
答案 0 :(得分:2)
你所追求的是一个递归的while循环,其中有一些逻辑可以根据当前状态处理正确的问题。我们可以在这里给你一个直接的答案,但你真的需要先了解一些核心和简单的原则。
我建议您在https://www.youtube.com/playlist?list=PLrW43fNmjaQXhWOKalftye87ObZA-xNIJ
查看我的C#初学者视频具体来说,这个视频有关While循环和复杂逻辑https://www.youtube.com/watch?v=a4g8JHX5jgg
的帮助从那以后你应该能够回答你自己的问题
答案 1 :(得分:1)
首先,我建议你看看一些基本的循环教程,例如其中一个
但那里还有更多。
要直接回答您的问题,您可以使用以下结构:
namespace ConsoleApp1
{
class Program
{
static void Main()
{
while(true) //loop forever
{
Console.WriteLine("do you want to (A)dd (E)dit or (X) Exit?");
string choice = Console.ReadLine();
if (choice == "A")
{
//Do add stuff here
}
else if (choice == "E")
{
//Do edit stuff here
}
else if (choice == "X")
{
break; //exit the loop
}
else
{
Console.WriteLine("unknown command");
}
}
}
}
}
你基本上进入了一个无限循环,用户总是会被问到相同的问题,这取决于他的回答你做了不同的事情。如果用户想退出,你只需要打破循环
而不是这样的if-else链,您可以使用switch
语句。
答案 2 :(得分:1)
只需创建一个新的void,最后再次调用void 例如:
static void Main(string args[]){
Loop();
}
private static void Loop(){
//code...
//in the end
Loop();
}
除非你在另一个线程中执行,否则你不需要while循环。