C# не все ветви кода возвращают значение

C# не все ветви кода возвращают значение
Я язык разбираю, так что, могут быть вообще элементарные ошибки..

static double Main(double a,ref double c)
{
int n;
string v = Console.ReadLine();
int.TryParse(v, out n);
while (n > 0)
{
if (n == 1)
return c = 1;
if (n > 1)
return c = 1 + (1 / c);
}
}

  • ну добавь в конце перед последней фигурной скобкой return 0; просто у тебя return стоит в условии, а это не 100% возвращаемость значения, а нужно чтобы метод 100% возвращал значение
  • не особо вникая в детали именно си-шарпа

    не стоит
    {
    if(условие1)return 1;
    if(условие2)return 2;
    }
    а если ни условие1 ни условие2? тогда что?

    надо или
    {
    if(условие1)return 1;
    if(условие2)return 2;
    return 3; // то куда пришло если не сработали те условия
    }

    или лучше
    {
    if(условие1)return 1;
    else if(условие2)return 2;
    else return 3;
    }

    ----------
    а
    while (n > 0)
    будет крутиться до бесконечности при постоянном n - воткни внутрь цикла изменение n.
    например
    n--;

  • Ну ты балда!static void main() должно быть!Это же точка входа приложения, произвольно возращать double эта функция не может!