Vb.net 如果语句赢了';我不能继续

Vb.net 如果语句赢了';我不能继续,vb.net,if-statement,Vb.net,If Statement,我正试图在VB.net上做一些计算。我使用了if-else语句,因为我对它有点熟悉。我的代码是这样的 Try Dim a As Integer = msalary.Text If (a < 9000) Then Label5.Text = a - 200 ElseIf (9000 < a < 9999.99) Then Label5.Text = a - 225 E

我正试图在VB.net上做一些计算。我使用了
if-else
语句,因为我对它有点熟悉。我的代码是这样的

 Try
        Dim a As Integer = msalary.Text
        If (a < 9000) Then
            Label5.Text = a - 200
        ElseIf (9000 < a < 9999.99) Then
            Label5.Text = a - 225
        ElseIf (10000 < a < 10999.99) Then
            Label5.Text = a - 250
        ElseIf (11000 <= a < 11999.99) Then
            Label5.Text = a - 275
        ElseIf (12000 <= a < 12999.99) Then
            Label5.Text = a - 300
        ElseIf (13000 <= a < 14000) Then
            Label5.Text = a - 325
        ElseIf (14000 <= a < 15000) Then
            Label5.Text = a - 350
        ElseIf (15000 <= a < 16000) Then
            Label5.Text = a - 375
        ElseIf (17000 <= a < 18000) Then
            Label5.Text = a - 400
        ElseIf (18000 <= a < 19000) Then
            Label5.Text = a - 425
        ElseIf (19000 <= a < 20000) Then
            Label5.Text = a - 450
        ElseIf (20000 <= a < 21000) Then
            Label5.Text = a - 475
        ElseIf (21000 <= a < 22000) Then
            Label5.Text = a - 500
        ElseIf (22000 <= a < 23000) Then
            Label5.Text = a - 525
        ElseIf (23000 <= a < 24000) Then
            Label5.Text = a - 550
        ElseIf (24000 <= a < 25000) Then
            Label5.Text = a - 575
        ElseIf (25000 <= a < 26000) Then
            Label5.Text = a - 600
        ElseIf (26000 <= a < 27000) Then
            Label5.Text = a - 625
        ElseIf (27000 <= a < 28000) Then
            Label5.Text = a - 650
        ElseIf (28000 <= a < 29000) Then
            Label5.Text = a - 675
        ElseIf (29000 <= a < 30000) Then
            Label5.Text = a - 700
        ElseIf (30000 <= a < 31000) Then
            Label5.Text = a - 725
        ElseIf (31000 <= a < 32000) Then
            Label5.Text = a - 750
        ElseIf (32000 <= a < 33000) Then
            Label5.Text = a - 800
        ElseIf (33000 <= a < 34000) Then
            Label5.Text = a - 825
        ElseIf (34000 <= a < 35000) Then
            Label5.Text = a - 850
        ElseIf (a >= 35000) Then
            Label5.Text = a - 875
        ElseIf a = "" Then

        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
试试看
将a调整为整数=msalary.Text
如果(a<9000),则
Label5.Text=a-200
ElseIf(9000ElseIf(11000看起来您的
If/ElseIf
语句中缺少了一些
。通常,如果不进行转换,您将无法从字符串转换为整数,因此我猜您没有
选项

Try
        Dim a As Integer = msalary.Text
        If (a < 9000) Then
            Label5.Text = a - 200
        ElseIf (9000 <= a AndAlso a < 10000) Then
            Label5.Text = a - 225
        ElseIf (10000 <= a AndAlso a < 11000) Then
            Label5.Text = a - 250
        ElseIf (11000 <= a AndAlso a < 12000) Then
            Label5.Text = a - 275
        ElseIf (12000 <= a AndAlso a 13000) Then
            Label5.Text = a - 300
        ElseIf (13000 <= a AndAlso a < 14000) Then
            Label5.Text = a - 325
        ElseIf (14000 <= a AndAlso a < 15000) Then
            Label5.Text = a - 350
        ElseIf (15000 <= a AndAlso a < 16000) Then
            Label5.Text = a - 375
        ElseIf (17000 <= a AndAlso a < 18000) Then
            Label5.Text = a - 400
        ElseIf (18000 <= a AndAlso a < 19000) Then
            Label5.Text = a - 425
        ElseIf (19000 <= a AndAlso a < 20000) Then
            Label5.Text = a - 450
        ElseIf (20000 <= a AndAlso a < 21000) Then
            Label5.Text = a - 475
        ElseIf (21000 <= a AndAlso a < 22000) Then
            Label5.Text = a - 500
        ElseIf (22000 <= a AndAlso a < 23000) Then
            Label5.Text = a - 525
        ElseIf (23000 <= a AndAlso a < 24000) Then
            Label5.Text = a - 550
        ElseIf (24000 <= a AndAlso a < 25000) Then
            Label5.Text = a - 575
        ElseIf (25000 <= a AndAlso a < 26000) Then
            Label5.Text = a - 600
        ElseIf (26000 <= a AndAlso a < 27000) Then
            Label5.Text = a - 625
        ElseIf (27000 <= a AndAlso a < 28000) Then
            Label5.Text = a - 650
        ElseIf (28000 <= a AndAlso a < 29000) Then
            Label5.Text = a - 675
        ElseIf (29000 <= a AndAlso a < 30000) Then
            Label5.Text = a - 700
        ElseIf (30000 <= a AndAlso a < 31000) Then
            Label5.Text = a - 725
        ElseIf (31000 <= a AndAlso a < 32000) Then
            Label5.Text = a - 750
        ElseIf (32000 <= a AndAlso a < 33000) Then
            Label5.Text = a - 800
        ElseIf (33000 <= a AndAlso a < 34000) Then
            Label5.Text = a - 825
        ElseIf (34000 <= a AndAlso a < 35000) Then
            Label5.Text = a - 850
        ElseIf (a >= 35000) Then
            Label5.Text = a - 875
        End If
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try
End Sub
试试看
将a调整为整数=msalary.Text
如果(a<9000),则
Label5.Text=a-200

ElseIf(9000我不会使用如此巨大的条件分支,我会找到一种更具算法性的方法

例如:

Option Strict On
Option Explicit On
Option Infer Off
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim salary As Integer = 34567, subtractor As Integer = 200
        Dim r As Range = GetSalaryRange(salary)
        For I As Integer = 9000 To r.Lower Step 1000
            subtractor += 25
        Next
        Label5.Text = (salary - subtractor).ToString
    End Sub
    Function GetSalaryRange(salary As Integer) As Range
        If salary < 9000 Then Return New Range() With {.Lower = 0, .Upper = 8999}
        Dim remainder As Integer = salary Mod 1000
        Return New Range With {.Lower = salary - remainder, .Upper = salary - remainder + 999}
    End Function
    Public Class Range
        Public Lower, Upper As Integer
        Public Function Contains(number As Integer) As Boolean
            If number >= Lower AndAlso number <= Upper Then Return True Else Return False
        End Function
    End Class
End Class
选项严格打开
选项显式打开
选项推断
公开课表格1
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
整数为34567的微薄工资,整数为200的减法器
Dim r As Range=GetSalaryRange(薪资)
对于I,整数=9000到r。降低步骤1000
减法器+=25
下一个
Label5.Text=(工资-减法器).ToString
端接头
函数GetSalaryRange(薪资为整数)为范围
如果薪资<9000,则返回新的范围(),其中包含{.Lower=0,.Upper=8999}
将余数调整为整数=薪资模块1000
返回带有{.Lower=salary-restinutes、.Upper=salary-restinutes+999}的新范围
端函数
公共类范围
公共下限,上限为整数
公共函数包含布尔值(数字为整数)

If number>=Lower AndAlso number hello。每当我清除或擦除文本框中“a”的数字时,我都会收到此错误消息。它表示从字符串转换为键入“Integer”无效。
。知道该怎么做吗?添加一个if语句,检查文本框是否为空。我之前尝试过。gues我将其放置在该位置。谢谢这缺少一个16k到17k的案例