计算器中的If-else命令
本文关键字:命令 If-else 计算器 | 更新日期: 2023-09-27 18:02:23
所以我现在正在为学校的一个项目制作计算器。计算器的作用是计算三角形。用户必须提供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");
}
}
使用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(...)
}
你可以试试这里的c# if-else参考。
试着自己写代码。如果没有像预期的那样工作,请在这里跟进。
作为一种快速解决方案,我会将这两种情况分配给某个布尔值持有人并相应地采取行动:
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所说,我使用>=来满足用户为角度和边提供两个以上的值…当然,如果用户为不可能三角形提供值,您应该添加一些边缘情况。
另一个旁注:不要使用Convert.ToDouble()
,如果转换失败会抛出异常。
Double.TryParse()
来获取值或优雅地失败。