Другие языки программирования и технологии

Маленькая помощь по c#

Тут есть маленькая ошибочка, но она такая что программа теряет смысл. Просит часто ввести первое число. Я хотел сделать в цикле так, чтоб если ошибка, то возвращало назад (учусь писать короче поэтому решил вставить goto). Прошу не большой подсказки новичку.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string result = String.Empty;
double var1 = 0, var2 = 0;
begin1:
Console.WriteLine("Введите первое число");

if (Double.TryParse(Console.ReadLine(), out var1) != true)

Console.WriteLine("Ошибка. Должно быть число. ");
goto begin1;

begin2:
Console.WriteLine("Введите второе число");
{
if (Double.TryParse(Console.ReadLine(), out var2) != true)
Console.WriteLine("Ошибка. Должно быть число. ");
goto begin2;
}
if (var1 < var2)
result = "less then";
else
{
result = var1 == var2 ? "они равны" : "больше чем";

}

Console.WriteLine("Наше первое число {0}",result);
Console.ReadKey();
Ну во первых: возьмите себе за правило оператор if, else писать не забывая фигурные скобки.
if (условие)
{
;
}
else
{
;
}
Во вторых: вот исправленный код, но вывод результата на Console немного не корректен, ну это вы уже сами исправите.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string result = String.Empty;
double var1 = 0, var2 = 0;
begin1:
Console.WriteLine("Введите первое число");

if (Double.TryParse(Console.ReadLine(), out var1) != true)
{
Console.WriteLine("Ошибка. Должно быть число. ");
goto begin1;
}

begin2:
Console.WriteLine("Введите второе число");
{
if (Double.TryParse(Console.ReadLine(), out var2) != true)
{
Console.WriteLine("Ошибка. Должно быть число. ");
goto begin2;
}
}
if (var1 < var2)
{
result = "less then";
}
else
{
result = var1 == var2 ? "они равны" : "больше чем";

}

Console.WriteLine("Наше первое число {0}", result);
Console.ReadKey();
}
}
}
СЛ
Сергей Лукьянов
1 732
Лучший ответ
Вместо goto используй do-while.
В остальном все более-менее кошерно.
Игорь Ksander
Игорь Ksander
59 547
Рустам Чанчаров Вся проблема в том,что пишет ошибка даже при замене goto do-while.
1. Проверка
if (Double.TryParse(Console.ReadLine(), out var2) != true)
лучше пусть выглядит так:
if ( ! Double.TryParse(Console.ReadLine(), out var2))

2. Если хотите, чтобы после проверки выполнялся не один оператор, а два, их надо сгруппировать фигурными скобками:
if ( ! Double.TryParse(Console.ReadLine(), out var1))
{
Console.WriteLine("Ошибка. Должно быть число. ");
goto begin1;
}

3. Надо же, не знал, что в си-шарпе есть goto 8-)
а задание какое? а-то не охота разбираться в этом всем
Dmitrii Terentev
Dmitrii Terentev
8 401