gpt4 book ai didi

c# - goto 语句的替代方法

转载 作者:行者123 更新时间:2023-11-30 21:46:49 27 4
gpt4 key购买 nike

我对 C# 还很陌生(一周前开始学习),在批处理和表达式 2 方面有一些经验,并且我一直在开发基于文本的游戏,试图了解更多信息。我一开始使用了 goto 语句,但根据我发现的几乎每个人的说法,goto 语句是死亡和绝望的混合体,所以我想学习更干净、不那么邪恶的方法来达到相同的效果。这是我为了演示我的意思而制作的一个糟糕的示例脚本:

using System;

namespace TestScript
{
class Program
{
public static void Main(string[] args)
{
string ConsoleReadinator;
string ConsoleReadinator2;
int Go = 0;

mainmenu:
do
{
Go = 0;
Console.Clear();
Console.WriteLine("Main Menu:");
Console.WriteLine("Store or something");
ConsoleReadinator = Console.ReadLine().ToUpper();
if (ConsoleReadinator == "STORE") { Go = 1; }
} while (Go == 0);

// In-game store example

{
Go = 0;
do
{
Console.Clear();
Console.WriteLine("In-game store I guess");
Console.WriteLine("Stuff you can buy, etc");
ConsoleReadinator2 = Console.ReadLine().ToUpper();
if (ConsoleReadinator2 == "GO") { Go = 1; }
} while (Go == 0);
goto mainmenu;
}
}
}
}

此脚本可以正常运行,但我想避免使用 goto 作为返回到先前语句的方式,以便导航菜单,并可能重复回合制游戏的算法。我在 Alternative to using goto statement in C# 中读到了有关使用此方法的信息。 (这基本上与我的问题相同,只是有点模糊),但是格雷格在那里制作的示例根本不适合我,以至于可能不值得尝试使该特定示例发挥作用。

最佳答案

据我所知,您想要一个无限循环:

  ...
while (true)
{
do
{
...
} while (Go == 0);

Go = 0;

do
{
...
} while (Go == 0);
}

关于c# - goto 语句的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38970925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com