Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 返回错误值的简单if语句逻辑_Vb.net - Fatal编程技术网

Vb.net 返回错误值的简单if语句逻辑

Vb.net 返回错误值的简单if语句逻辑,vb.net,Vb.net,我有最简单的if语句来计算一个人是否通过了考试,当我运行代码时,结果总是显示为失败 Public Class Form1 Dim EnglishMark As Single Dim ScienceMark As Single Dim MathsMark As Single Dim AverageMark As Single Private Sub btnCalculate_Click(sender As Object, e As EventArgs) H

我有最简单的if语句来计算一个人是否通过了考试,当我运行代码时,结果总是显示为失败

Public Class Form1
    Dim EnglishMark As Single
    Dim ScienceMark As Single
    Dim MathsMark As Single
    Dim AverageMark As Single

    Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
        EnglishMark = Val(txtEnglish.Text)
        ScienceMark = Val(txtScience.Text)
        MathsMark = Val(txtMaths.Text)
        AverageMark = (EnglishMark + ScienceMark + MathsMark) / 3 / 100

        If (AverageMark >= 50) Then 
            lblDisplay.Text = "You Passed Well Done" & Format(AverageMark, "Percent") 
        Else 
            lblDisplay.Text = "You Failed Try Again" & Format(AverageMark, "Percent")
        End If

    End Sub
End Class

谢谢

输入字段的值是多少?为什么要将它除以
100
?这个除法并没有使它成为一个百分比(如果这是您的意图)。(100+100+100)/3/100=1这是一个失败。当您使用调试器逐步处理代码时,您观察到了什么?如果你不把
if
语句都写在一行上,你的代码会更可读。你可能需要
(EnglishMark+ScienceMark+MathsMark)/(3*100)
另外,请不要把
if
语句写在这样一行上。唯一的例外是当它是一个简短的
If
语句(没有
Else
)时。或者,您可以使用类似
lblDisplay.Text=If(条件、值iftrue、值iffalse)
。但也要避免在表达式很长时这样做。