在给定的收缩压和舒张压值范围内,血压应该正常计算
private void txtBPDiastolic_Validating(object sender, CancelEventArgs e)
{
try
{
int systolic, diastolic;
systolic = int.Parse(txtBPSystolic.Text);
diastolic = int.Parse(txtBPDiastolic.Text);
if (systolic <= 120)
{
if (diastolic <= 80)
{
txtbpStat.Text = "Normal";
}
}
else if (systolic < 120 && systolic >= 129)
{
if (diastolic < 80)
{
txtbpStat.Text = "Elevated";
}
}
else if (systolic <= 130 && systolic >= 139 )
{
if (diastolic <= 80 && diastolic >= 89)
{
txtbpStat.Text = "Highblood (Stage1)";
}
}
else if (systolic >= 140)
{
if (diastolic >= 90)
{
txtbpStat.Text = "Highblood (Stage2)";
}
}
else if (systolic > 180)
{
if (diastolic > 120)
{
txtbpStat.Text = "Hypertensive Crisis";
}
}
}
catch (FormatException)
{
MessageBox.Show("Input Valid values");
}
}
如果我有2个变量,则无法正确计算
它无法读取“正常”以外的其他结果,并忽略了结果的其余选项
答案 0 :(得分:0)
请仔细查看if
语句中的条件,因为其中许多条件是无法满足的。例如,第二个条件:
else if (systolic < 120 && systolic >= 129)
一个值不能同时小于120和大于129,因此此条件永远不会返回true
。
许多检查中的第二条if
语句表示,即使收缩压读数满足条件,舒张压也可能不满足,这意味着状态永远不会改变(例如sys 150,dia 85)。 >
答案 1 :(得分:0)
这里有多个问题: 1)您的<=和> =需要在每个if语句中颠倒。 2)永远不会到达最后一个else子句,因为将满足else上面的条件。 3)嵌套的if应该合并。您可能会遇到外在而不是内在而无所事事,或者您可能会遇到内在而不是外在而打印出错误的东西。