2014-03-29 61 views
2

我需要您關於C#的幫助。 我創建這個程序:在控制檯C中編寫雙#

static void Main() 
    { 
     Console.WriteLine("You weight is: "); 
     double weight = Double.Parse(Console.ReadLine()); 
     Console.WriteLine("Your weight on Moon is: + {0}",weight*0.17); 
    } 

而問題是,當我啓動程序和投入,例如35.9,一批爲重,程序崩潰。

+0

如果你收到一個錯誤,你的錯誤是什麼?我可以運行你的代碼片段沒有問題。例如輸入150給我25.5。如果我先輸入數字,然後輸入數字,它只會崩潰。你沒有錯誤檢查,所以要小心。有數百萬種方式可能導致您的應用崩潰。 –

回答

5

它不會崩潰。它關閉。

您需要將Console.ReadLine()在方法結束時,如果你希望窗口保持打開足夠長的時間來閱讀郵件。

static void Main() 
{ 
    Console.WriteLine("You weight is: "); 
    double weight = Double.Parse(Console.ReadLine()); 
    Console.WriteLine("Your weight on Moon is: + {0}",weight*0.17); 

    Console.ReadLine(); // waits for input, allowing you to read the message 
} 
0

試試這個代碼,它肯定會工作:

Console.WriteLine("You weight is: "); 
double weight; 
double.TryParse(Console.ReadLine(), out weight); 
Console.WriteLine("Your weight on Moon is: + {0}", weight * 0.17); 
+0

它解析失敗,所以'TryParse'。 OP代碼和你的代碼之間的唯一區別是,他的代碼將以未處理的異常終止,而你的代碼將顯示「0」。兩者都不是一個好的解決方案。你應該檢查'TryParse'的返回值並相應地執行。 – dcastro

+0

@dcastor - 你是對的檢查返回值。 謝謝澄清 – arpitbakshi

1

如果你把斷點通過該程序,你可以看到它寫入到控制檯,你只是沒有得到一個機會,看它。

等待使用這個關鍵:

Console.WriteLine("Press any key to exit"); 
ConsoleKeyInfo c = Console.ReadKey(); 
1

感謝所有的幫助。我發現在我的一般電腦設置中,我選擇了逗號作爲小數點符號,當我在控制檯中寫入時,我使用了句號。所以這就是它關閉的原因。 :)