Метки и траблы с перемещением, юзая GOTO - C#
Формулировка задачи:
Собсна мой код, который по идее должен позволять по формуле вычислять значение переменной F, которой присвоен тип Double. Но не линкуются условия - зеленый exception вылезает на M-ке сверху, до инициализации, ругается на отсутствие ссылки. И после GOTO шлет меня в дали далекие, выдавая уже красный exception. Как исправить? Я чайничек, на первом курсе сижу. Кое-что смыслю уже, конечно, но вот успеть самому разобраться ну никак не получается.
М: int j, h, g, r, d; //вот тут как раз зеленый exception j = 0; Double F; Console.Write("h="); h = Convert.ToInt32(Console.ReadLine()); Console.Write("r="); r = Convert.ToInt32(Console.ReadLine()); Console.Write("g="); g = Convert.ToInt32(Console.ReadLine()); if (h > 2 * r) { Console.WriteLine("Начинаем заново, значение недопустимо"); } goto M; //тут красный exception if (g+g<h*h) { Console.WriteLine("Начинаем заново, значение недопустимо"); } F = Math.Sqrt(Math.Log(r-2*h)/(2*g-h*h))-(g+h)/Math.Sin(2*r); Console.WriteLine("F=" + F); Console.ReadLine(); Console.Write("Начать заново?="); d = Convert.ToInt32(Console.ReadLine()); if (d > j) { Console.WriteLine("Начинаем заново"); } goto M; //тут красный exception
Решение задачи: «Метки и траблы с перемещением, юзая GOTO»
textual
Листинг программы
while (true) { int j, h, g, r, d; j = 0; Double F; while (true) { Console.Write("h="); h = Convert.ToInt32(Console.ReadLine()); Console.Write("r="); r = Convert.ToInt32(Console.ReadLine()); Console.Write("g="); g = Convert.ToInt32(Console.ReadLine()); if ((h > 2 * r) || (g + g < h * h)) Console.WriteLine("Начинаем заново, значение недопустимо"); else break; } F = Math.Sqrt(Math.Log(r - 2 * h) / (2 * g - h * h)) - (g + h) / Math.Sin(2 * r); Console.WriteLine("F=" + F); Console.ReadLine(); Console.Write("Начать заново?="); d = Convert.ToInt32(Console.ReadLine()); if (d > j) Console.WriteLine("Начинаем заново"); else break; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д