我創建了一個小型應用程序,做一個小的轉換。在節目的最後,我已經創建了一個方法,它允許用戶進行另一次計算,如果他們按「R」。所有我想做的事情是,如果他們按R鍵,帶他們回到主的開始,否則終止程序。我不想使用goto。這是我到目前爲止,以及我得到的錯誤。C#重新啓動控制檯應用程序
http://puu.sh/juBWP/c7c3f7be61.png
我創建了一個小型應用程序,做一個小的轉換。在節目的最後,我已經創建了一個方法,它允許用戶進行另一次計算,如果他們按「R」。所有我想做的事情是,如果他們按R鍵,帶他們回到主的開始,否則終止程序。我不想使用goto。這是我到目前爲止,以及我得到的錯誤。C#重新啓動控制檯應用程序
http://puu.sh/juBWP/c7c3f7be61.png
我建議你使用其他功能,而不是主要的()。請參考下面的代碼:
static void Main(string[] args)
{
doSomething();
}
public static void WouldYouLikeToRestart()
{
Console.WriteLine("Press r to restart");
ConsoleKeyInfo input = Console.ReadKey();
Console.WriteLine();
if (input.KeyChar == 'r')
{
doSomething();
}
}
public static void doSomething()
{
Console.WriteLine("Do Something");
WouldYouLikeToRestart();
}
遞歸的解決方案? –
是的,這會使它遞歸,如果程序必須從for循環中重新啓動,這是非常瘋狂的。 –
在你的情況,你想重複的東西,所以當然你應該使用一個while循環。使用while循環來包裝所有的代碼像這樣:
while (true) {
//all your code in the main method.
}
然後你提示用戶在循環的結束,進入「R」:
if (Console.ReadLine() != "r") {//this is just an example, you can use whatever method to get the input
break;
}
如果用戶輸入[R那麼循環繼續完成這項工作。 break
意味着停止在循環執行的東西。
While循環將非常適合,但既然你說程序應該運行,然後給了用戶再次運行的選項,更好的循環將是Do While。 while和Do While之間的區別在於Do While將始終運行至少一次。
string inputStr;
do
{
RunProgram();
Console.WriteLine("Run again?");
inputStr = Console.ReadLine();
} while (inputStr == "y");
TerminateProgram();
嘗試使用'while'。 – Athari
請將代碼作爲文本發佈(格式正確) - 鏈接到隨機網站上的圖像並不真正歡迎SO,另外它可以消失並且使得該帖子對於未來的讀者完全無用。 –
已注意。不會再這樣做,謝謝。 – Godzilla2456