elseif必须先匹配if或elseif吗?

时间:2016-07-28 05:05:48

标签: vb.net

我尝试使用此代码找到一个基于两种不同分类的类别,但我收到了通知" elseif必须先匹配if或elseif"在我做的前两个分类。

 if pof < 0.1 then CCat = "A"
    elseif 0.1 < pof < 0.2 then CCat = "B"
    elseif 0.2 < pof < 0.3 then CCat = "C"
    elseif 0.3 < pof < 0.5 then CCat = "D"
    else CCat = "E"
end if

    if cof < 10000 then CCat = "A"
    elseif 10000 < cof < 50000 then CCat = "B"
    elseif 50000 < cof < 150000 then CCat = "C"
    elseif 150000 < cof < 1000000 then CCat = "D"
    else CCat = "E"
end if

我的if条件有问题吗? pof和cof都是之前计算得到的双倍。

1 个答案:

答案 0 :(得分:1)

这只是你的一次语法绊倒。如果您在&#34;然后&#34;之后删除代码运算符到下一行,VB认为它是一个多行语句,而不是单行语句。当你得到ElseIf,Else和End If

我打赌你已经习惯了C#,你可以用括号将它全部映射出来。 {}

我花了一些时间来记住VB,但这就是我认为你想要的东西:

    If pof < 0.1 Then
        CCat = "A"
    ElseIf 0.1 < pof < 0.2 Then
        CCat = "B"
    ElseIf 0.2 < pof < 0.3 Then
        CCat = "C"
    ElseIf 0.3 < pof < 0.5 Then
        CCat = "D"
    Else
        CCat = "E"
    End If


    If cof < 10000 Then
        CCat = "A"
    ElseIf 10000 < cof < 50000 Then
        CCat = "B"
    ElseIf 50000 < cof < 150000 Then
        CCat = "C"
    ElseIf 150000 < cof < 1000000 Then
        CCat = "D"
    Else
        CCat = "E"
    End If