如何逃离循环
本文关键字:循环 逃离 何逃离 | 更新日期: 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;
}