2013-11-20 3 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"); 

} 

Я пытался ставить обратный value1 повсюду, однако я получаю сообщение об ошибке Program.getNumber() ': не все пути кода возвращают значение.

Мысли?

+0

Если ваш синтапс невозможен, то ваше возвращение не получит удар. Он пропускает его и попадает в блокирующий блок. Вам также нужно поставить оператор return в свой блок catch. –

ответ

1

У вас также должен быть оператор возврата в блоке catch.

+0

Что означает, что значение1 должно быть инициализировано чем-то. , , – yonitdm

+0

Это структура, так что она уже инициализирована нулем. –

+0

@ Евгений.Чернобривец - внутри метода вам нужно обязательно присвоить значение. –

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; 
} 

Он будет больше появляться всякий раз, когда попробовать прошло пойманы.

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; 
} 
Смежные вопросы