计算器中的if-else命令

时间:2013-03-05 10:33:36

标签: c#

所以我正在为学校项目制作一个计算器。计算器的要点是计算三角形。用户必须提供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");
        }
    }

3 个答案:

答案 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()来获取值或优雅地失败。