【发布时间】:2022-04-18 21:53:44
【问题描述】:
我是一名编程初学者,我需要编写一个 c# 控制台应用程序,它会在循环中执行某些操作(假设将星号写入控制台),直到用户输入“停止”之类的命令。 像这样的:
While !('user entered word "stop"'){
Console.Write("*")
}
程序应该独立于任何用户按键或其他命令来编写星号,只需在用户准确写入“停止”并按 Enter 之前执行它即可。 这个:
string userinput = "";
while (true){
Console.Write("*");
userinput = Console.ReadLine();
if(userinput == "stop"){
break;
}
}
不是一个解决方案,因为它会在每个星号打印后不断询问用户输入。
对不起,如果这是一个愚蠢的问题,我什至不明白从哪里开始。
编辑: 好的,它可以是另一项任务,例如复制文件或播放音乐或其他任何东西。我只是不明白如何不断检查控制台 在不询问用户的情况下输入停用词。控制台可以为空,等待用户输入。
【问题讨论】:
-
只需将
while !(userinput)替换为while (true),因为当用户键入“停止”时,您将跳出循环 -
控制台忙于写星星时,用户如何打字?
-
"在控制台忙于写星星的时候,用户如何打字?" - 这就是我想要弄清楚的。
-
在我看来,您需要一种在不阻止程序执行的情况下检查键盘输入的方法。或许可以查看Console.KeyAvailable 属性。
-
如果您不想等待用户在每颗星之间按回车,那么您要查找的内容需要多个线程和多个控制台窗口。
标签: c# loops user-input