Тут есть маленькая ошибочка, но она такая что программа теряет смысл. Просит часто ввести первое число. Я хотел сделать в цикле так, чтоб если ошибка, то возвращало назад (учусь писать короче поэтому решил вставить 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();
Другие языки программирования и технологии
Маленькая помощь по c#
Ну во первых: возьмите себе за правило оператор 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();
}
}
}
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();
}
}
}
Вместо goto используй do-while.
В остальном все более-менее кошерно.
В остальном все более-менее кошерно.
Рустам Чанчаров
Вся проблема в том,что пишет ошибка даже при замене 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-)
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-)
а задание какое? а-то не охота разбираться в этом всем