我目前正在学习编程,通常我会偶然发现一些任务,您在控制台中键入的行数不确定(每条命令我都必须稍后使用switch或if-else语句在main中过滤掉)您键入“ END”表示您将停止编写行(通常会导致程序结束,但有时我必须打印一些最终代码)。最长时间以来,我一直使用此解决方案来选择所需的选择:
while (true) {
var input = Console.ReadLine().Split();
if (input[0] == "END") break;
switch (input[0]) {
//Task specific cases
}
}
但是今天我有一个主意。 (在进行了一些研究之后)我可以在switch语句中使用单词return添加“ 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或return都是正确的,但是具有不同的行为。您可以使用发现更好的一种。
break语句用于终止循环或它呈现。之后,控件将传递给语句在break语句之后显示的内容(如果有)。如果休息语句存在于嵌套循环中,则仅终止那些包含break语句的循环。
return语句终止该方法的执行,并且将控件返回到调用方法。它返回一个可选的值。如果方法的类型为void,则return语句可以为排除。
您可以在此处阅读更多信息:https://www.geeksforgeeks.org/c-sharp-jump-statements-break-continue-goto-return-and-throw/