我怎么解决这个循环?

时间:2013-11-01 18:28:37

标签: c# while-loop

我正试图在2周时间内完成C#的练习,为我的时间限制测试做准备,并且一直在尝试完成我在书籍中发现的练习。在互联网上。

练习要求使用while循环来询问用户输入他们的名字,如果不是“XXX”,那么它可以继续循环。但我得到的问题是,在编写循环之后,它只是继续,用户无法输入“XXX”来停止程序,所以我想知道是否有人知道解决方案吗?

这是我到目前为止写的代码..

String sName; 
//Declaring the variable


Console.Write("Enter a name (or XXX to end): ");
sName = Console.ReadLine();
//Prompting user to enter the name or to end the program by telling them to type XXX



while (sName != "XXX")
{
    Console.Write("The Name is: " + sName);
    Console.WriteLine();
}

//Start loop

Console.WriteLine("You are now past the while loop");
//If XXX is typed, message is displayed


Console.WriteLine("Press any key to close");
Console.ReadKey();
//Prevent program from closing

3 个答案:

答案 0 :(得分:7)

您的输入语句应该在循环中,否则如果第一个输入不等于XXX

,您将最终得到无限循环
String sName="";
while (sName != "XXX")
{
    Console.Write("Enter a name (or XXX to end): ");
    sName = Console.ReadLine();
    Console.Write("The Name is: " + sName);
    Console.WriteLine();
}
Console.WriteLine("You are now past the while loop");
Console.WriteLine("Press any key to close");
Console.ReadKey();

答案 1 :(得分:0)

您需要提示用户在循环中重新输入名称:

String sName;
Console.Write("Enter a name (or XXX to end): ");
sName = Console.ReadLine();
while (sName != "XXX")
{
   Console.Write("The Name is: " + sName);
   Console.WriteLine();
   Console.Write("Enter a name (or XXX to end): ");
   sName = Console.ReadLine();
}

答案 2 :(得分:0)

您没有提示用户进行下一次输入。 在while循环中添加以下语句

sName = Console.ReadLine();