c#-While循环编码理论,制作登录和注册系统

c#-While循环编码理论,制作登录和注册系统,c#,while-loop,C#,While Loop,我已经根据while循环可以在系统中的任何地方工作的理论编写了一个系统。因此,一旦循环通过,它就可以运行。以下是我的代码的简单版本: using System; namespace test___login { class Program { static void Main(string[] args) { string location = "homepage"; while (location

我已经根据while循环可以在系统中的任何地方工作的理论编写了一个系统。因此,一旦循环通过,它就可以运行。以下是我的代码的简单版本:

using System;

namespace test___login
{
    class Program
    {
        static void Main(string[] args)
        {
            string location = "homepage";
            while (location.Equals("Homepage", StringComparison.InvariantCultureIgnoreCase))

            {
                Console.WriteLine("homepage");
                Console.WriteLine("WHere to now: ");
                location = Console.ReadLine();
            }
            while (location.Equals("login", StringComparison.InvariantCultureIgnoreCase))
            {
                Console.WriteLine("login");
                Console.WriteLine("Where to now: ");
                location = Console.ReadLine();
            }
        }
    }
}

所以我假设,一旦变量在第二个while循环中从“login”变为“homepage”,就意味着第一个while循环将再次运行。是我关于代码如何工作的理论错了,还是我输入的东西不正确。我上星期才开始,很抱歉这个基本问题与您当前的代码结构不符。它将退出应用程序。您需要用一个与其他循环类似的
while
循环来包围所有这些。见下文:

using System;

namespace test___login {
    class Program
    {
        static void Main(string[] args)
        {
            string location = "homepage";
            while (!location.ToUpper().Equals("EXIT"))
            {
                while (location.Equals("Homepage", StringComparison.InvariantCultureIgnoreCase))

                {
                    Console.WriteLine("homepage");
                    Console.WriteLine("WHere to now: ");
                    location = Console.ReadLine();
                }
                while (location.Equals("login", StringComparison.InvariantCultureIgnoreCase))
                {
                    Console.WriteLine("login");
                    Console.WriteLine("Where to now: ");
                    location = Console.ReadLine();
                }
            }
        }
    }
}

与您当前构建代码的方式不同。它将退出应用程序。您需要用一个与其他循环类似的
while
循环来包围所有这些。见下文:

using System;

namespace test___login {
    class Program
    {
        static void Main(string[] args)
        {
            string location = "homepage";
            while (!location.ToUpper().Equals("EXIT"))
            {
                while (location.Equals("Homepage", StringComparison.InvariantCultureIgnoreCase))

                {
                    Console.WriteLine("homepage");
                    Console.WriteLine("WHere to now: ");
                    location = Console.ReadLine();
                }
                while (location.Equals("login", StringComparison.InvariantCultureIgnoreCase))
                {
                    Console.WriteLine("login");
                    Console.WriteLine("Where to now: ");
                    location = Console.ReadLine();
                }
            }
        }
    }
}

它不会再次运行,因为代码已经执行过那一行,所以除非您再次调用它,否则下一行将执行,在您的情况下,什么都不会执行-这称为过程编程

为什么不做一个while循环,改为一个switch语句呢

bool run = true;
while (run)

{
      Console.WriteLine("WHere to now: ");
      string location = Console.ReadLine();

    switch(location.ToLower()){
        case "homepage":
            Console.WriteLine("HomePage");
            break;
        default:
            run = false;
            break;
    }

}

它不会再次运行,因为代码已经执行过那一行,所以除非您再次调用它,否则下一行将执行,在您的情况下,什么都不会执行-这称为过程编程

为什么不做一个while循环,改为一个switch语句呢

bool run = true;
while (run)

{
      Console.WriteLine("WHere to now: ");
      string location = Console.ReadLine();

    switch(location.ToLower()){
        case "homepage":
            Console.WriteLine("HomePage");
            break;
        default:
            run = false;
            break;
    }

}

不,你理解错了。循环完成后不会重复,除非以某种方式再次调用它。实际上,您只需要一个循环就可以使用
ReadLine()
内部和
if/switch
重复提问,并根据输入的值进行选择。您的代码从上到下读取,一旦第一个
while
语句等于
false
它将转到第二个
while
。因此,第一个
while
将执行,直到不再满足条件,然后可以为第二个
发送相同的
不,您理解错了。循环完成后不会重复,除非以某种方式再次调用它。实际上,您只需要一个循环就可以使用
ReadLine()
内部和
if/switch
重复提问,并根据输入的值进行选择。您的代码从上到下读取,一旦第一个
while
语句等于
false
它将转到第二个
while
。因此,第一个
while
将执行,直到不再满足条件,然后可以为第二个
发送相同的