c#使用什么循环

c#使用什么循环,c#,loops,C#,Loops,好的,我的问题是,我现在有3个可能的答案:是,不是,还有其他的。我想让我的程序写“对不起?”直到我回答是或否。。。我刚开始使用c#,还在学习,所以请尽量简单。多谢各位 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Pitalica { class Program { static void Main(string[] args) {

好的,我的问题是,我现在有3个可能的答案:是,不是,还有其他的。我想让我的程序写“对不起?”直到我回答是或否。。。我刚开始使用c#,还在学习,所以请尽量简单。多谢各位

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Pitalica
{
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Kvisko");
        Console.WriteLine("\"Hello Traveller!!\" says a man. \"What's your name?\"");
        string playerName = Console.ReadLine();
        Console.WriteLine("\"Hi " + playerName + ", welcome to the beautiful city of Osijek!\nI would like to give you a tour of our little town, but I don't have time to do so right now.\nI need to go to class.\"");
        Console.WriteLine("He looks at you with your backpack on your back.\"But I could show you later if you're up to?\"");
        string answer1 = Console.ReadLine();
        if (answer1 == "yes")

            Console.WriteLine("\"We have a deal, " + playerName + "!\"");
        else if (answer1 == "no")

            Console.WriteLine("\"Your loss," + playerName + "...\"");
        else 
        {
            Console.WriteLine("Pardon me?");
        }
        Console.WriteLine("After some time...");

        }
    }
}

从技术上讲,您可以实现任何循环,但我建议
while

 ...
 string answer1 = Console.ReadLine();

 while (answer1 != "yes" && answer1 != "no") {
   Console.WriteLine("Pardon me?");
   answer1 = Console.ReadLine();
 }
 ...
当回答不正确时,继续提问

编辑:正如霍根在评论中建议的那样,我们应该对用户友好:让他/她在任何带有前导和尾随空格的寄存器中输入是/否:

 ...
 // with Trim() and ToUpper() all "Yes", "   yes", "YES  " are OK
 string answer1 = Console.ReadLine().Trim().ToUpper();

 while (answer1 != "YES" && answer1 != "NO") {
   Console.WriteLine("Pardon me?");

   answer1 = Console.ReadLine().Trim().ToUpper();
 }
 ... 
编辑2:要退出程序(请参阅注释中的附加问题),只需从
主菜单返回即可:

 ...
 if (answer1 == "NO") {
   Console.WriteLine("Your loss"); 

   return; // return from Main will exit the program
 }

从技术上讲,您可以实现任何循环,但我建议
while

 ...
 string answer1 = Console.ReadLine();

 while (answer1 != "yes" && answer1 != "no") {
   Console.WriteLine("Pardon me?");
   answer1 = Console.ReadLine();
 }
 ...
当回答不正确时,继续提问

编辑:正如霍根在评论中建议的那样,我们应该对用户友好:让他/她在任何带有前导和尾随空格的寄存器中输入是/否:

 ...
 // with Trim() and ToUpper() all "Yes", "   yes", "YES  " are OK
 string answer1 = Console.ReadLine().Trim().ToUpper();

 while (answer1 != "YES" && answer1 != "NO") {
   Console.WriteLine("Pardon me?");

   answer1 = Console.ReadLine().Trim().ToUpper();
 }
 ... 
编辑2:要退出程序(请参阅注释中的附加问题),只需从
主菜单返回即可:

 ...
 if (answer1 == "NO") {
   Console.WriteLine("Your loss"); 

   return; // return from Main will exit the program
 }

也许使用
answer1.ToUpper().Trim()
只是为了让工作更轻松user@Hogan:谢谢你的建议软件应该对用户友好。谢谢大家的帮助。。还有一个问题,伙计们。。。如果他们回答“否”,我如何停止程序。。。因为现在它只会继续这个故事…@Osti991:如果你想中断程序的执行,你所要做的就是返回(请参见我的编辑),也许可以使用
answer1.ToUpper().Trim()
来简化程序user@Hogan:谢谢你的建议软件应该对用户友好。谢谢大家的帮助。。还有一个问题,伙计们。。。如果他们回答“否”,我如何停止程序。。。因为现在它只会继续这个故事…@Osti991:如果你想中断程序的执行,你所要做的就是在一段时间后返回(请参见我的编辑)
对你的问题的回答。因为我还在学习:一段时间后。。。仅当人员回答“是”时才应为。。。如果他们回答“否”,我只想告诉他们您的损失,并在一段时间后关闭程序…
回答您的问题。因为我仍在学习:一段时间后。。。仅当人员回答“是”时才应为。。。如果他们回答不,我只想说你输了,然后关闭程序