2016-07-23 3 views
-2

以下のコードがあります。 'elseif'ステートメントの1つを使用して、 '' elseif ''と 'if'または 'elseif' 'ステートメントをマッチングさせる必要があるというエラーが発生し続けます。私はこの構文を使用していましたので、誰かがヒントを提供できるのであれば、なぜこのエラーが出てくるのか分かりません。私は、 "then"を新しい行に分割するなど、他の例を見てきましたが、動作していないようです。"else文の前に一致する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 

End Subの

+0

を作成することができ++? – stryku

+0

あなたは1行の 'If'文を使用しています。 'Else'または' ElseIf'を追加するには、すべて同じ行に入力するか、Visual Basicの_line継続文字_(アンダースコア '_')で区切る必要があります。 –

+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

ではなく、その後の必要はないでしょうのSelect Caseステートメントを使用することができますif文

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

次に、あなただけのカード値のための別のSelect Caseステートメント(cardval)Cを述べている

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

    'and so on till all conditions are met