哪种解决方案最适合从循环中断开(使用输入时)

问题描述 投票:0回答:1

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

while (true) {
    var input = Console.ReadLine().Split().ToArray();
    if (input[0] == "END") break;

    switch (input[0]) {
        //Task specific cases
    }
}

但是今天我有一个主意。 (在进行了一些研究之后)我可以在switch语句中使用单词return添加“ END”大小写。唯一的问题是,由于我的代码位于主程序中,因此它将自动结束程序。解决方案是将代码转移到另一种方法,但是此解决方案更好还是有些过于复杂?

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

static void Main(string[] args) {
        Logic();
    //Other stuff to do, is the task requires it
}

public static void Logic() {
    while (true) {
            var info = Console.ReadLine().Split().ToArray();

                switch (info[0]) {
                        case "END": return;
                        //Other task specific cases
                }
        }
}

**对不起,如果该帖子令人困惑,我对编程术语不是很好。

c# loops switch-statement return console-application
1个回答
0
投票

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

break语句用于终止循环或它呈现。之后,控件将传递给语句在break语句之后显示的内容(如果有)。如果休息语句存在于嵌套循环中,则仅终止那些包含break语句的循环。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.