如果变成选择案例,那么

问题是,我基本上使用If语句在VB.NET中编写了一个Rock Paper Scissors游戏,并想知道我将如何尝试将其用于Select Case。 教授在教学方面非常糟糕,直到今天才告诉我们它必须是Select Case(明天到期._。) 公共类Form1
    Dim randomGenerator As New Random


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub


    Private Sub rdoROCK_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoROCK.CheckedChanged
        If rdoROCK.Checked = True Then
            picROCK.Visible = True
        Else
            picROCK.Visible = False
        End If
    End Sub

    Private Sub rdoPAPER_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoPAPER.CheckedChanged
        If rdoPAPER.Checked = True Then
            picPAPER.Visible = True
        Else
            picPAPER.Visible = False
        End If
    End Sub

    Private Sub rdoSCISSORS_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdoSCISSORS.CheckedChanged
        If rdoSCISSORS.Checked = True Then
            picSCISSORS.Visible = True
        Else
            picSCISSORS.Visible = False
        End If
    End Sub


    Private Sub btnSTART_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSTART.Click
        Dim computerChoice As Integer

        randomGenerator.Next(1, 4)
        computerChoice = randomGenerator.Next(1, 4)

        'If computerChoice = 1 Then
        'picROCK2.Visible = True
        'ElseIf computerChoice = 2 Then
        'picPAPER2.Visible = True
        'ElseIf computerChoice = 3 Then
        'picSCISSORS2.Visible = True
        'End If

        If computerChoice = 1 Then
            picROCK2.Visible = True
            If rdoROCK.Checked = True Then
                lbltie.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lblwin.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lbllose.Visible = True
            End If
        End If

        If computerChoice = 2 Then
            picPAPER2.Visible = True
            If rdoROCK.Checked = True Then
                lbllose.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lbltie.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lblwin.Visible = True
            End If
        End If

        If computerChoice = 3 Then
            picSCISSORS2.Visible = True
            If rdoROCK.Checked = True Then
                lblwin.Visible = True
            ElseIf rdoPAPER.Checked = True Then
                lbllose.Visible = True
            ElseIf rdoSCISSORS.Checked = True Then
                lbltie.Visible = True
            End If
        End If




    End Sub

    Private Sub Label5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblwin.Click

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        picROCK.Visible = False
        picROCK2.Visible = False
        picPAPER2.Visible = False
        picPAPER.Visible = False
        picSCISSORS.Visible = False
        picSCISSORS2.Visible = False
        lblwin.Visible = False
        lbltie.Visible = False
        lbllose.Visible = False
        rdoROCK.Checked = False
        rdoPAPER.Checked = False
        rdoSCISSORS.Checked = False

    End Sub
End Class
    
已邀请:
我相信你正在寻找1,2或3作为你的
Select Case
- 它看起来像是:
Select Case computerChoice
    Case 1
        ' Do what's currently in your [if computerChoice = 1] section
    Case 2
        ' Do what's currently in your [if computerChoice = 2] section
    Case 3
        ' Do what's currently in your [if computerChoice = 3] section
End Select
    
您可以使用
Select Case
重构代码:
Select Case rdoROCK.Checked
        Case True
            picROCK.Visible = True
        Case False
            picROCK.Visible = False
 End Select
或者为了简洁起见:
picROCK.Visible = rdoROCK.Checked
在你的主要内容上,我还创建了一个枚举以便于阅读:
Enum RPS
    Paper = 1
    Rock = 2
    Scissors = 3
End Enum

'now deciding what to show for win, lose or draw:
    Select Case computerChoice
        Case RPS.Paper
            UpdateFormOnPaper()
        Case RPS.Rock
            UpdateFormOnRock()
        Case RPS.Scissors
            UpdateFormOnScissors()
    End Select

 'a method to update the for Win, Lose or Draw for each choice.
 Sub UpdateFormOnRock()        
    picROCK2.Visible = True

    Select Case True
        Case rdoROCK.Checked
            lbltie.Visible = True
        Case rdoPAPER.Checked
            lblwin.Visible = True
        Case rdoSCISSORS.Checked
            lbllose.Visible = True
    End Select
End Sub
    

要回复问题请先登录注册