如何逃离循环

本文关键字:循环 逃离 何逃离 | 更新日期: 2023-09-27 17:59:36

我在Main()中有一个while循环,它经过几个方法。尽管一个名为ScanChanges()的方法有一个if/else语句,但在if的情况下,它必须跳到Thread.Sleep(10000)(在循环结束时)。

static void Main(string[] args)
{    
    while (true)
    {
        ChangeFiles();    
        ScanChanges();    
        TrimFolder();    
        TrimFile();    
        Thread.Sleep(10000);
    }
}    
private static void ChangeFiles()
{
    // code here
}
private static void ScanChanges()
{
} 
FileInfo fi = new FileInfo("input.txt");
if (fi.Length > 0)
{
    // How to Escape loop??
}
else
{
    Process.Start("cmd.exe", @"/c test.exe -f input.txt > output.txt").WaitForExit();
}

如何逃离循环

Make ScanChanges返回一些值,指示是否必须跳到循环的末尾:

class Program
    {
        static void Main(string[] args)
        {
            while (true)
            {
                ChangeFiles();
                bool changes = ScanChanges();
                if (!changes) 
                {
                    TrimFolder();
                    TrimFile();
                }
                Thread.Sleep(10000);
            }
        }

private static void ChangeFiles()
{
  // code here
}
private static bool ScanChanges()
{
     FileInfo fi = new FileInfo("input.txt");
     if (fi.Length > 0)
     {
         return true;
     }
     else
     {
         Process.Start("cmd.exe", @"/c test.exe -f input.txt > output.txt").WaitForExit();
         return false;
      }      
}

如果在ScanChanges中达到了if语句,则让ScanChanges返回一个bool;如果ScanChanges返回true,则在while循环中跳过这两个过程的另一条if语句。

使ScanChanges的返回值为布尔值,如果它要中断循环,则返回true,否则返回false。

然后在main中设置break loop条件。

使用break退出循环。

if (fi.Length > 0)
{
    break;
}