用户如何输入单词" stop"并且代码关闭了?

时间:2016-09-27 10:55:08

标签: c#

我只是需要帮助,因为我无法找到我想要的答案。  我想在用户输入单词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;
            }

        }
    }

}

1 个答案:

答案 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(;;) - 本质上是一样的,但它不常见。