2013-11-20 43 views
0

只是最近纔開始做代碼,所以要溫和一些,並且從我的大學獲得了一個非常簡單的任務。Try語句後的返回值

private static double getNumber() 

{ 
double value1; 


Console.WriteLine("please enter your first number"); 

try 

{ 
value1 = double.Parse(Console.ReadLine()); 

return value1; 

} 

catch 

{ 
Console.WriteLine("Must be numeric"); 

} 

我試圖把返回值1遍,但是我不斷收到錯誤消息Program.getNumber(的地方)「:並非所有的代碼路徑返回一個值。

想法?

+0

如果你的解析失敗,那麼你的返回不會被擊中。它跳過它並擊中catch塊。您還需要在catch塊中放入一個return語句。 –

回答

1

你應該在你的catch塊中有return語句。

+0

這意味着value1必須被初始化爲某些東西。 。 。 – yonitdm

+0

它是struct,所以它已經被初始化爲零。 –

+0

@ Yevgeniy.Chernobrivets - 在一個方法中,你需要明確地賦值。 –

1

只要把回報外塊:

private static double getNumber()  
{ 
    double value1 = 0; 
    Console.WriteLine("please enter your first number"); 
    try  
    { 
     value1 = double.Parse(Console.ReadLine()); 
    } 
    catch 
    { 
     Console.WriteLine("Must be numeric"); 
    } 
    return value1; 
} 

它將occure每當嘗試通過或捕獲。

0
private static double getNumber() 
{ 
    double value1=0;  
    Console.WriteLine("please enter your first number"); 

    try  
    { 
     value1 = double.Parse(Console.ReadLine()); 
    } 
    catch 
    { 
     Console.WriteLine("Must be numeric"); 
    } 
    return value1; 
}