使用 goto 语句

  • 本文关键字:语句 goto 使用 c#
  • 更新时间 :
  • 英文 :

static void Main(string[] args)
{
double i, j;
Console.WriteLine("Enter fnum");
i = Convert.ToDouble(Console.ReadLine());
start:
Console.WriteLine("Enter snum");
j = Convert.ToDouble(Console.ReadLine());
if(j==0)
{
goto start;
}
Console.ReadLine();
Console.WriteLine("Div result is {0}/{1}={2}", i, j, i / j);
}

我正在尝试在 c# 中使用 GOTO 实现除以零。我得到了结果,但在这里我想先计算 fnum/snum 并打印结果,然后如果我输入 snum 零,它应该要求我输入 snum 而不是零。然后 goto 开始标签应该开始工作。但是在这种情况下,默认情况下我只能执行 fnum/snum。

Console.WriteLine("Enter fnum");
i = Convert.ToDouble(Console.ReadLine());
start:
Console.WriteLine("Enter snum");
j = Convert.ToDouble(Console.ReadLine());

在这里,如果我输入 snum 零,它应该需要我开始标签并问我"输入第二个数字其他零"

谁能帮我?

if(j==0)
{
Console.WriteLine("snum cannot be 0!!");
goto start;
}

不建议使用goto语句或养成使用它们的习惯。

它们往往会增加复杂性并创建意大利面条代码,随着您添加越来越多的内容,它们也会影响可读性。由 goto 语句引起的错误可能很难修复。等等,其他人可以编辑更多不使用goto语句的理由,如果他们愿意。

你绝对不应该使用goto。请改用简单的while循环:

static void Main(string[] args)
{
double i, j = 0;
Console.Write("Enter fnum: ");
double.TryParse(Console.ReadLine(), out i);
Console.Write("Enter snum: ");
while (j == 0)
{
double.TryParse(Console.ReadLine(), out j);
if(j==0)
Console.WriteLine("Enter a number that is not 0");
}

Console.ReadLine();
Console.WriteLine("Div result is {0}/{1}={2}", i, j, i / j);
}

此外,我已经修改了您的代码以使用Double.TryParse而不是通常推荐的Convert.ToDouble()。有了它,您可以实施检查以确保用户实际输入了一个数字。对于输入,我还Console.WriteLine更改为Console.Write,这根本不影响程序的流程,但对我来说,它在美学上更好。

最新更新