2016-07-23 37 views
-2

我有下面的代码。通过其中一个'elseif'语句,我不断收到错误,指出''elseif'必须在前面匹配'if'或'elseif'语句“。我以前使用过这个语法,所以我不确定为什么这个错误出现了,如果任何人都可以提供一些提示。我已经看过其他例子,比如将“当时”分解为一个新行,但它们似乎并不奏效。“否则必须在匹配if语句之前” - 不清楚的错误

当我只是放置“If..then”语句时,它不会显示出错误,但我相信我需要一个“else if”语句来做出决策。

Private Sub btnDeal_Click(sender As Object, e As EventArgs) Handles btnDeal.Click 
    Dim suit As Double 
    Dim cardval As Double 
    Dim num As String 
    Dim house As String 


    For i = 0 To 50 Step 2 ' player 1 

     suit = Math.Floor(list(i) \ 13) 
     cardval = list(i) Mod 13 

     If suit = 0 Then house = "Clubs" 
     elseIf suit = 1 Then house = "Diamonds" 
     elseIf suit = 2 Then house = "Hearts" 
     else suit = 3 Then house = "Spades" 
     End if 

     If cardval = 0 Then num = "Ace" 
     If cardval = 1 Then num = "two" 
     If cardval = 2 Then num = "three" 
     If cardval = 3 Then num = "four" 
     If cardval = 4 Then num = "five" 
     If cardval = 5 Then num = "six" 
     If cardval = 6 Then num = "seven" 
     If cardval = 7 Then num = "eight" 
     If cardval = 8 Then num = "nine" 
     If cardval = 9 Then num = "ten" 
     If cardval = 10 Then num = "jack" 
     If cardval = 11 Then num = "queen" 
     If cardval = 12 Then num = "king" 

     ListBox1.Items.Add("num" & " of " & "house") 
    Next 

末次

+0

凡提到C++? – stryku

+0

您正在使用单行'If'语句。为了添加'Else'或'ElseIf',你必须在同一行输入所有内容,或者用Visual Basic的_line continuation character_(下划线'_')分隔它。 –

+0

看看这种逻辑类型的Select Case。 – Blackwood

回答

0

你并不需要一个ELSEIF。你的条件是相互排斥的。在执行这些条件期间,suit不会改变。

If suit = 0 Then house = "Clubs" 
    If suit = 1 Then house = "Diamonds" 
    If suit = 2 Then house = "Hearts" 
    If suit = 3 Then house = "Spades" 
1
else suit = 3 Then house = "Spades" 

也许应该是:

elseIf suit = 3 Then house = "Spades" 

- 或 -

else house = "Spades" 
0

能使用选择Case语句来代替,然后就没有必要的if语句

Select Case suit 
    Case 0 
     House = "Clubs" 
    Case 1 
     House = "Diamonds" 
    Case 2 
     House = "Hearts" 
    Case 3 
     House = "Spades" 
End Select 

然后,你可以创建一个纸牌值(cardval)另一个SELECT CASE语句

Select Case cardval 
    Case 0 
     num = "Ace" 
    Case 1 
     num = "two" 

    'and so on till all conditions are met