我對C#很有新意(一週前開始學習它),在批處理和表達式2方面有一些經驗,並且我一直在嘗試基於文本的遊戲,學到更多。起初我使用了goto語句,但根據我發現的幾乎所有人,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#(這基本上與我的問題基本相同,除了更模糊一些)之外,我已閱讀了有關使用此方法的內容,但Greg做出的示例根本不適用於我,因此可能不值得嘗試使這個特定的例子有效。
我認爲這個問題是一個更合適的網站是一個網站http://codereview.stackexchange.com/ – BWA
是啊,不要使用goto語句,永遠 – Liam
@Liam該帖子的全部內容是不使用goto聲明,永遠。 –