首页 > 解决方案 > 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 选择菜单。)

标签: c#

解决方案


推荐阅读