所以我正在为学校项目制作一个计算器。计算器的要点是计算三角形。用户必须提供3条信息,2面和1角,2角和1面。
正如您在下面提供的代码中所看到的,我不知道如何继续我的项目。我对C#很新。 我必须检查,如果已经提供了A,B和c,则必须计算它,如果提供A,B和b,则必须计算它,依此类推。但我不确定我是如何做“if-else”命令的。
private void button1_Click(object sender, EventArgs e)
{
List<double> angles = new List<double>();
List<double> sides = new List<double>();
double A = (AAngle.Text == "") ? 0.00 : Convert.ToDouble(AAngle.Text);
double B = (BAngle.Text == "") ? 0.00 : Convert.ToDouble(BAngle.Text);
double C = (CAngle.Text == "") ? 0.00 : Convert.ToDouble(CAngle.Text);
double a = (ASide.Text == "") ? 0.00 : Convert.ToDouble(ASide.Text);
double b = (BSide.Text == "") ? 0.00 : Convert.ToDouble(BSide.Text);
double c = (CSide.Text == "") ? 0.00 : Convert.ToDouble(CSide.Text);
if (!(A == 0.00))
angles.Add(A);
if (!(B == 0.00))
angles.Add(B);
if (!(C == 0.00))
angles.Add(C);
if (!(a == 0.00))
sides.Add(a);
if (!(b == 0.00))
sides.Add(b);
if (!(c == 0.00))
sides.Add(c);
if ((angles.Count() == 2 && sides.Count == 1) || (angles.Count == 1 && sides.Count == 2))
{
if ???
}
else
{
MessageBox.Show("NOT ENOUGH OR TOO MANY SIDES/ANGLES PROVIDED OR NOT A VALID TRIANGLE");
}
}
答案 0 :(得分:1)
使用像这样的else if语句:
if (angles.Count() == 2 && sides.Count == 1)
{
// calculate based on two angles and one side
}
else if (angles.Count == 1 && sides.Count == 2)
{
// calculate based on one angle and two sides
}
else
{
MessageBox.Show(...)
}
答案 1 :(得分:0)
您可以尝试使用C#if-else引用here。
尝试自己编写代码。如果它没有按预期工作,请在此处跟进。
答案 2 :(得分:0)
作为一种快速解决方案,我会将这两种情况分配给某个持有者布尔值并相应地采取行动:
var angles = (angles.Count >= 2 && sides.Count >= 1);
var sides = (angles.Count == 1 && sides.Count >= 2);
if (angles)
{ calculateTriangleFromAngles(); }
else if (sides)
{ calculateTriangleFromAngles(); }
else
{ MsgBox.... }
正如@ user1012630所说,我使用&gt; =来满足用户为角度和边都提供两个以上的值......如果用户提供了一个不可能三角形的值,你应该添加一些边缘情况。
另一个旁注:不要使用Convert.ToDouble()
,如果转换失败,它将抛出异常。最好使用Double.TryParse()
来获取值或优雅地失败。