我的程序在我写数字之前关闭(计算选项)



我不知道为什么我的程序在我写数字之前关闭(在计算选项中(。标签有什么问题。有人帮忙吗?对此感到抱歉。这对你来说一定很容易。

class Program
{
static void Main(string[] args)
{
string str;
double parametrA, parametrB, parametrC;
Console.Write("Chose a option: n");
Console.Write("calculating - calculating square equation n");
Console.Write("series - even or odd n");
Console.Write("exit - close program n");
Console.ReadKey();
while (true)
{
str = Console.ReadLine();
if (str == "calculating")
{
goto label1;                     
}
else
{
if (str == "series")
{
goto label2;
}
else
{
if (str == "exit")
{
goto label3;
}
}
}
label1:
Console.WriteLine("calculating: n");
Console.WriteLine("enter parameters: n");

if (args.Length < 3)
{
Console.WriteLine("not enaught data n");
return;
}
try
{
parametrA = Double.Parse(args[0]);
parametrB = Double.Parse(args[1]);
parametrC = Double.Parse(args[2]);

//i 应该制作一个 console.readkey((?

}
catch (Exception)
{
Console.WriteLine("One of the parameters isnt a correct number! ");
return;
}
Console.WriteLine("Introduced equation parameters: n");
Console.Write("Parametr A = " + parametrA + "Parametr B = " + parametrB + "Parametr C = " + parametrC + "n");
if (parametrA == 0)
{
Console.WriteLine("It isn't a square equation! ");
}
else
{
double delta = parametrB * parametrB - 4 * parametrA * parametrC;
double score;
if (delta < 0)
{
Console.WriteLine("Delta < 0! ");
}
else if (delta == 0)   
{
score = -parametrB / (2 * parametrA);
Console.WriteLine("x = " + score);
}
else
{ 
score = (-parametrB + Math.Sqrt(delta)) / (2 * parametrA);
Console.WriteLine("x1 = " + score);
score = (-parametrB - Math.Sqrt(delta)) / (2 * parametrA);
Console.WriteLine("x2 = " + score);
}
}

如果我分开标签,我就无法兼容。

label2:
Console.WriteLine("odd numbers : n");
for (int i = 1; i <= 10; i++)
{
if (i % 2 != 0)
Console.WriteLine(i);
else
Console.WriteLine("even!");
}

此标签工作正确的
标签3: Console.WriteLine("exit "(; if (str == "exit"( { 破; }

}
}
}

}

下面从程序的命令行参数(传递给main方法的 args 数组(中读取参数。

parametrA = Double.Parse(args[0]);
parametrB = Double.Parse(args[1]);
parametrC = Double.Parse(args[2]);

您可能想要的是您在上面使用的readLine调用。

编辑:至于编译问题。请发布格式正确的未编译代码的完整示例,并发布编译器错误,因为它很可能会说明您的代码出了什么问题。

最新更新