打破其范围之外的循环

时间:2014-01-10 16:10:33

标签: c#

如果我有

   string command = null;
    while(command != "exit")
    {
      Console.Write(">$");
      ProcessCommand(Console.ReadLine());
    }

    public static void  ProcessCommand(string Command)
    {
        if(Command == "exit") break;
    }

这不会起作用,因为循环不在调用函数上,有没有办法打破我从循环范围调用的函数内部的循环?

看看这是多么丑陋

string command = null;
while(command != "exit")
{
  Console.Write(">$");
  command = Console.ReadLine();
  if(command == "exit") break;
  ProcessCommand(command);
}

4 个答案:

答案 0 :(得分:3)

您必须在break内有while语句,而不是在其他方法中。你可以这样写:

bool continueLoop;
do
{
  Console.Write(">$");
  continueLoop = ProcessCommand(Console.ReadLine());
} while (!continueLoop);

public static bool ProcessCommand(string command)
{
    return command != "exit";
}

答案 1 :(得分:1)

而是从你的方法返回bool

public static bool  ProcessCommand(string Command)
{
    if(command == "exit") return false;
}

while(command != "exit")
{
  Console.Write(">$");
  if(!ProcessCommand(Console.ReadLine())) break;
}

答案 2 :(得分:0)

你为什么要打破?你已经在while循环中测试了吗?所以只需分配command = Console.ReadLine()然后当它=="退出"循环将自动退出。

答案 3 :(得分:0)

string command = null;
while(command != "exit")
{
   Console.Write(">$");
   ProcessCommand(command=Console.ReadLine());
}

public static void  ProcessCommand(string Command)
{
   if(Command == "exit") return;
}