繁体   English   中英

带数字的“ if”语句

[英]An 'if' statement with numbers

我刚买了一个游泳池,并且正在开发一个日志程序来每天测量化学物质。 下面的语句不能正常工作,而不是查找化学物质是什么,而是将其构建到程序中。 即使我输入6, Level Perfect仍会出现在我的标签中:

If FCI__Free_Cholorine_ppmTextBox.Text < "1" Then
            lbfci.Text = "Level Too low"
        ElseIf FCI__Free_Cholorine_ppmTextBox.Text > "0" Then
            lbfci.Text = "Level Perfect"
        ElseIf FCI__Free_Cholorine_ppmTextBox.Text <= "4" Then
            lbfci.Text = "Level Perfect"
        ElseIf FCI__Free_Cholorine_ppmTextBox.Text > "4" Then
            lbfci.Text = "Level Too High"
        End If

理想情况下,您应该首先使用Integer.TryParse方法将文本框的内容解析为Integer,以消除用户可能在文本框中输入数字而犯的任何错误。

' First initialize a String variable and Trim any whitespace
Dim s As String = FCI__Free_Cholorine_ppmTextBox.Text.ToString().Trim()
Dim num As Integer
    ' Integer.TryParse returns True if it has successfully parsed the String into an Integer
    If Integer.TryParse(s, num) Then
        If num > 4 Then
          lbfci.Text = "Level Too High"
        ElseIf num > 0 Then
          lbfci.Text = "Level Perfect"
        Else
          lbfci.Text = "Level Too low"
        End If
    Else
            lbfci.Text = "Not a number"
    End If

将字符串转换为数字,然后使用if / elseif。 检查的顺序很重要

Private Sub FCI__Free_Cholorine_ppmTextBox_TextChanged(sender As Object, e As EventArgs) _
    Handles FCI__Free_Cholorine_ppmTextBox.TextChanged
    Dim lvl As Decimal
    If Decimal.TryParse(FCI__Free_Cholorine_ppmTextBox.Text, lvl) Then
        'the order of checking is important
        If lvl > 4 Then '5,6,7,etc.
            lbfci.Text = "Level Too High"
        ElseIf lvl > 0 Then '1,2,3,4
            lbfci.Text = "Level Perfect"
        Else
            lbfci.Text = "Level Too low"
        End If
    Else
        lbfci.Text = "Numbers only"
    End If
End Sub

这说明了为什么在这种情况下字符串比较不是一个好主意

    Dim s As String = "10"
    Dim s1 As String = "4"
    If s > s1 Then
        Stop
    End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM