当试图从标签中获取值时,if else语句出现错误,并且布尔错误无效表达式项

本文关键字:错误 表达式 无效 布尔 语句 if 标签 获取 else | 更新日期: 2023-09-27 18:17:13

我有3个文本框,接受来自用户的值,并在按钮上单击我计算总数和平均值。之后,我还想打印成绩,但在文本框中打印的平均值的值,我得到一个无效的表达式错误也">=",即使我使用"=>"。谢谢你。

//print grade
        if (label14.Text = => 90)
        {
            label15.Text = "A";
        }
        else if (label14.Text = >= 80)
        {
            label15.Text = "B";
        }
        else if (label14.Text = >= 70)
        {
            label15.Text = "C";
        }
        else if (label14.Text = >= 60)
        {
            label15.Text = "D";
        }
        else
            label15.Text = "F";

当试图从标签中获取值时,if else语句出现错误,并且布尔错误无效表达式项

试试

    var mark = Convert.ToSingle(label14.Text);
    if (mark >= 90)
    {
        label15.Text = "A";
    }
    else if (mark >= 80)
    {
        label15.Text = "B";
    }
    else if (mark >= 70)
    {
        label15.Text = "C";
    }
    else if (mark >= 60)
    {
        label15.Text = "D";
    }
    else
        label15.Text = "F";

假设label14是您的文本框,label14。Text是一个字符串。不进行解析就不能将其与整数进行比较。至少,您需要使用

int.Parse( label14.Text) >= 90

虽然验证输入是否正确,但对于使应用程序可用有很长的路要走。

label14.Textstring,其中90int !

将逻辑与UI分开总是更好的。这使您可以专注于逻辑本身,而不必处理转换文本框和标签。

写一个单独的类
public class GradeCalculator
{
    public string ScoreToGrade(decimal score)
    {
        if (score >= 90) return "A";
        if (score >= 80) return "B";
        if (score >= 70) return "C";
        if (score >= 60) return "D";
        return "F";
    }
    public decimal Total(IList<decimals> scores)
    {
        ...
    }
    public decimal Average(IList<decimals> scores)
    {
        ...
    }
}

在您的表单中,您现在可以像这样转换输入

var calculator = new GradeCalculator();
decimal score;
if (Decimal.TryGetValue(label14.Text, out score)) {
    label15.Text = calculator.ScoreToGrade(score);
} else {
    label15.Text = "Please enter a valid number";
}

如果你给你的控件更好的名字,它会使代码更可读。例:scoreTextBoxgradeLabelcalculateButton