string vibor; if (vibor = Y) goto Z0; CSHARP string vibor; if (vibor = Y) goto Z0; сука нужно чтобы если я вводил букву Y, то меня перекидывает к метке Z0, а если чет другое, то прога закрывается так проблема сука в чем? если пишу как выше, то Y считается за переменную, а если в кавычках, то "не удается не явно преобразовать string в bool " и предупреждение, что я присвоил значение, но ни разу не юзал его. Хелпаните работяги
нексюша, смотри, тебе надо считать с консоли текст в переменную vibor, дальше сравнивай так: if( vibor == "Y" ) (обязательно два равно, так как при одном, считай что ты присваиваешь переменной vibor какое-то значение
skyenot, проще фулл код скинуть using System; namespace goto9 { class Program { static void Main(string[] args) { Console.Title = "Практическая работа №9"; Z0: Console.Write("Введите номер задания: "); byte N = Convert.ToByte(Console.ReadLine()); switch (N) { case 1: Console.Write("Введите значение A: "); double skibidi = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите значение B: "); double toilet = Convert.ToDouble(Console.ReadLine()); double digit; if (skibidi < toilet) { digit = skibidi; } else { digit = toilet; } Console.WriteLine("y={0}", digit + "\n"); Console.WriteLine("Продолжить выполнение заданий? "); string vibor = Convert.ToString(Console.ReadLine()); if (vibor == "Y") goto Z0; break; case 2: Console.Write("Введите значение x: "); double xx = Convert.ToDouble(Console.ReadLine()); if (xx != 7 && xx < -10) { double y = (2) / (xx - 7); Console.WriteLine($"y= {y}" + "\n"); } else if (xx > -21 && (xx >= -12 && xx <= 12)) { double y = Math.Sqrt(xx + 20); Console.WriteLine($"y= {y}" + "\n"); } else if (xx != 15 && xx > 12) { double y = ((1) / (15 - xx)) + 1; Console.WriteLine($"y= {y}" + "\n"); } else { Console.WriteLine("x не удовлетворяет ОДЗ((((" + "\n"); } break; case 3: Console.Write("Введите значение x: "); double firstvalue = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите значение y: "); double secondvalue = Convert.ToDouble(Console.ReadLine()); if (firstvalue < 0 && secondvalue > 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) <= 4 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) >= 1) Console.WriteLine("Точка принадлежит заштрихованной области!" + "\n"); else if (firstvalue < 0 && secondvalue < 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) > 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) <= 1) Console.WriteLine("Точка принадлежит заштрихованной области!" + "\n"); else Console.WriteLine("Точка не принадлежит заштрихованной области." + "\n"); break; default: Console.Write("Задания не существует!" + "\n"); goto Z0; } } } } CSHARP using System; namespace goto9 { class Program { static void Main(string[] args) { Console.Title = "Практическая работа №9"; Z0: Console.Write("Введите номер задания: "); byte N = Convert.ToByte(Console.ReadLine()); switch (N) { case 1: Console.Write("Введите значение A: "); double skibidi = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите значение B: "); double toilet = Convert.ToDouble(Console.ReadLine()); double digit; if (skibidi < toilet) { digit = skibidi; } else { digit = toilet; } Console.WriteLine("y={0}", digit + "\n"); Console.WriteLine("Продолжить выполнение заданий? "); string vibor = Convert.ToString(Console.ReadLine()); if (vibor == "Y") goto Z0; break; case 2: Console.Write("Введите значение x: "); double xx = Convert.ToDouble(Console.ReadLine()); if (xx != 7 && xx < -10) { double y = (2) / (xx - 7); Console.WriteLine($"y= {y}" + "\n"); } else if (xx > -21 && (xx >= -12 && xx <= 12)) { double y = Math.Sqrt(xx + 20); Console.WriteLine($"y= {y}" + "\n"); } else if (xx != 15 && xx > 12) { double y = ((1) / (15 - xx)) + 1; Console.WriteLine($"y= {y}" + "\n"); } else { Console.WriteLine("x не удовлетворяет ОДЗ((((" + "\n"); } break; case 3: Console.Write("Введите значение x: "); double firstvalue = Convert.ToDouble(Console.ReadLine()); Console.Write("Введите значение y: "); double secondvalue = Convert.ToDouble(Console.ReadLine()); if (firstvalue < 0 && secondvalue > 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) <= 4 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) >= 1) Console.WriteLine("Точка принадлежит заштрихованной области!" + "\n"); else if (firstvalue < 0 && secondvalue < 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) > 0 && Math.Pow(firstvalue, 2) + Math.Pow(secondvalue, 2) <= 1) Console.WriteLine("Точка принадлежит заштрихованной области!" + "\n"); else Console.WriteLine("Точка не принадлежит заштрихованной области." + "\n"); break; default: Console.Write("Задания не существует!" + "\n"); goto Z0; } } } }
нексюша, бля, ладно, я пас. Разберись в функциях стандартных. Console.Readline может вернуть null, то есть надо добавить проверку на это и в зависимости от результата уже по задаче смотри И убери ты этот goto. Я не знаю как в шарпе, но в других языках таким не пользуются, только если не пишут какие-то хак скрипты, которые работают не совсем очевидно. Как вариант while или же рекурсия
почитай первые страницы книг по языку, да в принципе по программированию. одно равно используется для сравнивания разве что в паскале лол
string? vibor = Console.ReadLine(); if (vibor == "Y") goto Z0; CSHARP string? vibor = Console.ReadLine(); if (vibor == "Y") goto Z0;