Я помогаю другу с некоторым новичком C#, и мы столкнулись с какой-то странной проблемой.case switch игнорирует Console.ReadLine()
læn = Console.ReadLine()
на линии 31 пропускается. Это приводит к ошибке .Parse
в строке 32.
Если мы поместим дополнительный læn = Console.ReadLine()
в после первого, он начнет работать.
static void Main(string[] args)
{
double areal, læn1, høj1 = 0;
int figur;
string tekst, læn, høj;
tekst = ("Du skal nu vægle en figur.");
tekst += ("\nTryk 1 for rektangel");
tekst += ("\nTryk 2 for cirkel");
tekst += ("\nTryk 3 for en retvinklet trekant");
tekst += ("\nValg: ");
Console.Write("{0}", tekst);
figur = Console.Read();
switch (figur)
{
case '1':
{
Console.WriteLine("Du har valgt en rektangel. \nHvad er længden: ");
læn = Console.ReadLine(); //Line 31
læn1 = double.Parse(læn); //Line 32
Console.WriteLine("hvad er højden?");
høj = Console.ReadLine();
høj1 = double.Parse(høj);
areal = læn1 * høj1;
Console.WriteLine("\n{0} * {1} = {2}", læn, høj1, areal);
Console.ReadKey();
}
break;
default:
Console.WriteLine("Du har ikke valgt 1,2 eller 3");
Console.ReadKey();
break;
}
}
Какова ценность 'læn' точно? Отлаживай и скажи нам. –
Вероятно, вы хотите 'Console.ReadKey()' вместо 'Console.Read()' –
, вероятно, из-за 'figur = Console.Read()' –