c# - c#无限方法切换循环。尝试执行该方法并以返回结束它;语句,但它循环回到方法的开头
问题描述
我遇到了一个问题,我的方法在我测试过的无休止地运行,它通过 do while 循环正常运行并终止,但尽管它有返回;陈述。我的程序没有结束该方法并返回到主程序。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, What would you like to do?\n1. add a phonebook entry.\n2. search for a specific phonebook entry.\n3. see all phonebook entries.\n4. quit.");
var choice = Console.ReadLine();
int Choice;
var END = "";
do
{
if (int.TryParse(choice, out Choice) && Choice >= 1 && Choice <= 4)
{
switch (Choice)
{
case 1:
addName();
Choice = 0;
break;
case 2:
findName();
break;
case 3:
seeNames();
break;
case 4:
END = "123898761hgasdbfasd";
break;
default:
Console.WriteLine("Hello, What would you like to do?\n1. add a entry.\n2. search for a specific entry.\n3. see all entries.\n4. quit.");
break;
}
}
else { Console.WriteLine("Hello, What would you like to do?\n1. add a entry.\n2. search for a specific entry.\n3. see all entries.\n4. quit.");
choice = Console.ReadLine();
}
}while(END != "123898761hgasdbfasd");
}
private static void seeNames()
{
throw new NotImplementedException();
}
private static void findName()
{
throw new NotImplementedException();
}
private static void addName()
{
int place = 1,end = 0;
string name = null, address = null, numer = null;
do {
switch (place)
{
case 1:
Console.WriteLine("What name would you like to add?");
var User = Console.ReadLine();
Console.WriteLine("You entered {0} is that right?", User);
name = User;
User = Console.ReadLine();
if (User == "y" || User == "Y") { place = 2; }
else { place = 1; }
break;
case 2:
Console.WriteLine("What address would you like to add?");
User = Console.ReadLine();
address = User;
Console.WriteLine("You entered {0} is that right?", User);
User = Console.ReadLine();
if (User == "y" || User == "Y") { place = 3; } else { place = 2; }
break;
case 3:
Console.WriteLine("What phone number would you like to add?");
User = Console.ReadLine();
Console.WriteLine("You entered {0} is that right?", User);
numer = User;
User = Console.ReadLine();
if (User == "y" || User == "Y") { place = 4; } else { place = 3; }
break;
case 4:
using (System.IO.StreamWriter file = new System.IO.StreamWriter("Addressbook.txt", true))
{ file.WriteLine("Name : {0} Address: {1} Phone-Numer: {2}", name, address, numer); file.Close(); }
Console.WriteLine("Would you like to subbmit another entry?");
User = Console.ReadLine();
if (User == "y" || User == "Y") { place = 1; }
else { end = 5; return; }
break;
default:
break;
}
} while (end != 5);
return;
}
}
}
到达地点 4 并告诉程序我不想输入另一个地址后,它会循环返回并要求另一个名称。我似乎无法打破这个循环并导致程序返回主程序(主程序是一个调用其他方法的 4 选择菜单。)