我只是需要帮助,因为我无法找到我想要的答案。 我想在用户输入单词stop后立即停止此代码。 如果他们是你想要我添加的细节,请告诉我。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibraryWork
{
class Program
{
static void Main(string[] args)
{
var bookList = new List<string>();
string ansSearch = String.Empty;
string search = String.Empty;
int i = 1;
for (int zero = 0; i > zero; i++)
{
Console.Write("Type ");
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("'New'");
Console.ForegroundColor = ConsoleColor.White;
Console.Write(" if you would you like to enter a new book. Type ");
Console.ForegroundColor = ConsoleColor.Green;
Console.Write("'List' ");
Console.ForegroundColor = ConsoleColor.White;
Console.Write("to see a list of books entered. Type ");
Console.ForegroundColor = ConsoleColor.Yellow;
Console.Write("'Search' ");
Console.ForegroundColor = ConsoleColor.White;
Console.Write("to look up a specific book.");
Console.WriteLine();
string answer = Console.ReadLine();
if (answer == "New")
{
Console.Write("Please format the Entry of your book as follows: ");
Console.ForegroundColor = ConsoleColor.Red;
Console.Write("'Name of the Book',");
Console.ForegroundColor = ConsoleColor.Blue;
Console.Write("'Author (first, last)',");
Console.ForegroundColor = ConsoleColor.DarkGreen;
Console.Write("'Category',");
Console.ForegroundColor = ConsoleColor.DarkYellow;
Console.Write("'Dewey Decimal Number'.");
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine();
bookList.Add("Entry " + i + ": " + Console.ReadLine());
continue;
}
if (answer == "List")
{
bookList.ForEach(Console.WriteLine);
Console.WriteLine("Press enter to continue");
Console.ReadLine();
i--;
continue;
}
if (answer == "Search")
{
Console.WriteLine("What would you like to search for (Title: Full Title; Author: first, last): ");
search = Console.ReadLine();
var results = bookList.Where(x => x.Contains(search)).ToList();
bool isEmpty = !results.Any();
if (isEmpty)
{
i--;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Sorry, we could not find that.");
Console.ForegroundColor = ConsoleColor.White;
continue;
}
foreach (var result in results)
{
Console.WriteLine(result);
}
Console.WriteLine("Press Enter to continue");
Console.ReadLine();
results.Clear();
i--;
continue;
}
i--;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Incorrect Response, please try again");
Console.ForegroundColor = ConsoleColor.White;
}
}
}
}
答案 0 :(得分:4)
if(answer == "Stop")
{
Environment.Exit(0);
}
退出程序。 (使用return;
会产生相同的影响)
或者,您可以使用break;
来转义for循环:
if(answer == "Stop")
{
break;
}
我建议使用break;
,以便在程序关闭之前执行任何其他代码。
修改强>
另一位用户提到了这一点,但是你的for循环构造得很糟糕。你不需要递减i
的值来使for循环无休止地运行。
首先删除代码中的每个i--;
。
无限循环有两种选择:
1。 while(true)
- 这是最常用的,使用此方法更具可读性和传统性。
2。 for(;;)
- 本质上是一样的,但它不常见。