哪种解决方案最适合打破用户输入的循环?



我目前正在学习编程,经常偶然发现您在控制台中键入不确定行数的任务(每个都是我稍后必须在 main 中使用开关或 if-else 语句过滤掉的命令(,最后您键入"END"表示您将停止编写行(通常它会导致程序结束,但有时我必须打印一些最终代码(。长期以来,我一直使用此解决方案来选择所需的选择:

while (true) {
var input = Console.ReadLine().Split();
if (input[0] == "END") break;
switch (input[0]) {
//Task specific cases
}
}

但今天我随机有一个想法。(在我做了一些研究之后(我可以使用单词 return 在 switch 语句中添加"END"大小写。唯一的问题是,因为我的代码是主要的,所以它会自动结束程序。解决方案是将代码转移到另一种方法,但是这种解决方案更好还是有点过于复杂?

*这是第二个解决方案的样子:

static void Main(string[] args) {
Logic();
//Other stuff to do, if the task requires it
}
public static void Logic() {
while (true) {
var info = Console.ReadLine().Split();
switch (info[0]) {
case "END": return;
//Other task specific cases
}
}
}

**抱歉,如果帖子读起来令人困惑,我不太擅长编程术语。

这是另一种可能的实现:

public static void Logic()
{
bool exit = false;
do
{
var info = Console.ReadLine().Split();
switch (info[0])
{
case "END":
exit = true;
break;
}
}
while (!exit);
}

任何解决方案,使用 break 或返回都是正确的,但具有不同的行为。您可以使用您发现更好的那个。

break 语句用于终止 中的循环或语句 它呈现的。之后,控件将传递给语句 在中断语句之后出现(如果有(。如果中断 嵌套循环中存在的语句,然后它仅终止那些 包含中断语句的循环。

return 语句终止方法的执行,并且 将控件返回到调用方法。它返回一个可选的 价值。如果方法的类型为 void,则 return 语句可以是 排除。

您可以在此处阅读更多内容:https://www.geeksforgeeks.org/c-sharp-jump-statements-break-continue-goto-return-and-throw/

相关内容

  • 没有找到相关文章

最新更新