我在C#类中有一个作业很困惑。这是下面的作业。我的问题是如何执行回车?似乎使用/ r重置到行的开头...我打算在while循环中使用string.empty,但是我无法通过指令告诉是否有一种方法可以通过使用获得期望的结果回车。我觉得我正在寻找方法。有什么想法吗?
让我们花点时间让我们的程序做点事情。将程序修改为:
●提示用户输入名称
●将输入字符串存储到名为str01的变量中。
●使用存储在str01中的字符串向控制台输出问候语。 (例如“你好,埃塞尔!”)
●不断提示用户输入名称。
●如果他们输入一个空字符串(简单的回车符),则退出循环并显示一条适当的消息(例如“下次见!”)。
class App01
{
static void Main(string[] args)
{
string str01;
for(;;)
{
Console.Write ("Enter your name -");
str01 = Console.ReadLine();
Console.WriteLine("Hello '{0}'", str01);
}
}
}
答案 0 :(得分:1)
来自docs:
ReadLine方法从标准输入流中读取行。
行被定义为一系列字符,后跟回车符(十六进制0x000d),换行符(十六进制0x000a)或Environment.NewLine属性的值。 返回的字符串不包含终止字符。
如果未输入任何字符,而我们刚打了回车符,我们只会得到一个空字符串回车符。一行是从到终止字符的字符序列。在这种情况下,回车。
因此,为解决您的问题,分配定义所期望的结果是仅检查读入ItemsSource
的行是否为空,并显示str01
。
答案 1 :(得分:0)
基于我对您提供的分配条件的理解,如果用户提供了一个null(在这种情况下为空字符串)作为名称,则您的程序需要退出循环。
如果要坚持使用for循环实现,请尝试使用if-else语句:
string userName;
for(;;)
{
Console.Write ("Enter your name: ");
userName = Console.ReadLine();
if (userName != String.Empty)
{
Console.WriteLine($"Hello {userName}");
}
else // (userName == String.Empty)
{
Console.WriteLine("\nSee you next time!");
break;
}
}
此外,我建议您对变量使用有意义的名称。例如,我在这里使用userName而不是str01。我认识到str01的使用是您分配标准的一部分,但是通过要求您使用无意义的名称,它们对您没有帮助。