2015-08-09 85 views
1

我創建了一個小型應用程序,做一個小的轉換。在節目的最後,我已經創建了一個方法,它允許用戶進行另一次計算,如果他們按「R」。所有我想做的事情是,如果他們按R鍵,帶他們回到主的開始,否則終止程序。我不想使用goto。這是我到目前爲止,以及我得到的錯誤。C#重新啓動控制檯應用程序

http://puu.sh/juBWP/c7c3f7be61.png

+0

嘗試使用'while'。 – Athari

+0

請將代碼作爲文本發佈(格式正確) - 鏈接到隨機網站上的圖像並不真正歡迎SO,另外它可以消失並且使得該帖子對於未來的讀者完全無用。 –

+0

已注意。不會再這樣做,謝謝。 – Godzilla2456

回答

0

我建議你使用其他功能,而不是主要的()。請參考下面的代碼:

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(); 
    } 
+0

遞歸的解決方案? –

+0

是的,這會使它遞歸,如果程序必須從for循環中重新啓動,這是非常瘋狂的。 –

0

在你的情況,你想重複的東西,所以當然你應該使用一個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意味着停止在循環執行的東西。

2

While循環將非常適合,但既然你說程序應該運行,然後給了用戶再次運行的選項,更好的循環將是Do While。 while和Do While之間的區別在於Do While將始終運行至少一次。

 string inputStr; 

     do 
     { 
      RunProgram(); 

      Console.WriteLine("Run again?"); 
      inputStr = Console.ReadLine(); 
     } while (inputStr == "y"); 

     TerminateProgram(); 
相關問題