.net Visual Basic跳过If语句 请不要将此标记为一个复制品。我只能在C++和C语言中找到线程。我需要用VB帮助。< /P>
我很高兴地报告我的游戏几乎完全正常,但是我设置了它,所以当玩家分数值为10时,它会弹出一个胜利对话框,询问你是否想再次玩,同样的,如果电脑分数达到10,除了失败 跳过播放器的if语句,因为当计算机达到10时,会弹出一个失败对话框,但当播放器达到10时,if语句不会被触发 帮忙 当我把MsgBox(“这里是胜利的素材”,“胜利”,messageboxbuttons.yesno)放进去时.net Visual Basic跳过If语句 请不要将此标记为一个复制品。我只能在C++和C语言中找到线程。我需要用VB帮助。< /P>,.net,vb.net,.net,Vb.net,我很高兴地报告我的游戏几乎完全正常,但是我设置了它,所以当玩家分数值为10时,它会弹出一个胜利对话框,询问你是否想再次玩,同样的,如果电脑分数达到10,除了失败 跳过播放器的if语句,因为当计算机达到10时,会弹出一个失败对话框,但当播放器达到10时,if语句不会被触发 帮忙 当我把MsgBox(“这里是胜利的素材”,“胜利”,messageboxbuttons.yesno)放进去时 我把语法设计错了,窗口标题似乎是你放在消息框中的最后一个东西你在那里犯了绞刑罪。您正在捕获任何异常并忽略它。对于
我把语法设计错了,窗口标题似乎是你放在消息框中的最后一个东西你在那里犯了绞刑罪。您正在捕获任何异常并忽略它。对于您看到的情况,最可能的解释是正在抛出异常,但您只是忽略了它,那么您怎么知道呢?完全摆脱那个异常处理程序。除非您希望在某些情况下能够抛出特定类型的异常,否则永远不应该添加异常处理程序。永远不要添加这样的异常处理程序,以防万一,因为结果是你现在陷入混乱。除此之外,学习如何调试和执行它。您应该设置一个断点,并在代码中单步执行,以准确地查看它正在执行的操作。如果您这样做了,并且抛出了一个异常,那么您已经看到了它发生的位置以及异常是什么。如果你不知道如何调试,开始学习。在一个不太重要的方面,学习如何正确地生成随机数。如果要使用
随机化
和Rnd
,请正确执行,即仅使用随机化
一次,例如在加载
事件处理程序中。也就是说,不要使用随机化
和Rnd
。我们不再使用VB6了。创建Random
类的单个实例,并使用该实例生成所有随机数。“如果我取出exeption处理程序,它将抛出invalidcast异常”。嗯,不管怎么说,它是在抛出那个异常。这就是重点。解决方法不是忽略异常。解决方案是找出引发异常的原因,并修复引发异常的代码。如果抛出了一个InvalidCastException
,那么显然您正在执行一个无效的强制转换。它抛出的是哪一行,您正在抛出什么,您将它作为什么类型抛出?正如我所说的,不要添加异常处理“以防万一”。所有Try…Catch
块都应用于特定目的,例如,连接到数据库时网络连接中断,或试图打开数据库时删除文件。只有你无法控制的东西。对于其他所有内容,即您没有预测到的内容或代码错误的结果,您应该处理应用程序的UnhandledException
事件。在那里,您可以记录错误并优雅地退出应用程序,甚至可以自动重新启动,而不是崩溃。永远不要忽略未知的异常。您需要在项目属性和IDE选项中启用选项Strict,因此它是未来项目的默认选项。在这之后,类似这样的问题将由编译器处理,而不是在运行时处理。它不会解决你所有的问题,但它会通过更多地关注数据类型来帮助你编写更好的代码。我该怎么做@jmchilneyfirst你打开一个搜索引擎,然后键入适当的关键字,然后阅读相关的结果,然后根据找到的信息继续。如果有人给你关键词,你的第一步应该是找出你能为自己做的事情。先看,然后再问问题。我们不是来解释每一个细节的。@JustARogueCoder-有一个默认选项,但是您可以始终将选项严格地放在上作为代码的第一行。我确实这样做了,我在选项中找到了它,所以这会发现更多错误?我不太明白你说的是什么@jmcilhinney
Public Class gameForm
Dim playerscore As Integer = 0
Dim comscore As Integer = 0
Private Sub btnPlay_Click(sender As Object, e As EventArgs) Handles btnPlay.Click
Try
Dim rock = 3
Dim paper = 2
Dim scissors = 1
Dim num As Integer = CInt(Int((3 * Rnd()) + 1))
Randomize()
' IF PLAYER CHOOSES ROCK
If rbRock.Checked And num = rock Then
lblPlayerChoice.Text = "You Chose Rock"
lblComChoice.Text = "Computer Chose Rock"
lblOutcome.Text = "DRAW"
ElseIf rbRock.Checked And num = paper Then
lblPlayerChoice.Text = "You Chose Rock"
lblComChoice.Text = "Computer Chose Paper"
lblOutcome.Text = "YOU LOSE"
comscore = comscore + 1
lblComScoreVal.Text = CStr(comscore)
ElseIf rbRock.Checked And num = scissors Then
lblPlayerChoice.Text = "You Chose Rock"
lblComChoice.Text = "Computer Chose Scissors"
lblOutcome.Text = "YOU WIN"
playerscore = playerscore + 1
lblPlayerScoreVal.Text = CStr(playerscore)
End If
' IF PLAYER CHOOSES PAPER
If rbPaper.Checked And num = rock Then
lblPlayerChoice.Text = "You Chose Paper"
lblComChoice.Text = "Computer Chose Rock"
lblOutcome.Text = "YOU WIN"
playerscore = playerscore + 1
lblPlayerScoreVal.Text = CStr(playerscore)
ElseIf rbPaper.Checked And num = paper Then
lblPlayerChoice.Text = "You Chose Paper"
lblComChoice.Text = "Computer Chose Paper"
lblOutcome.Text = "DRAW"
ElseIf rbPaper.Checked And num = scissors Then
lblPlayerChoice.Text = "You Chose Paper"
lblComChoice.Text = "Computer Chose Scissors"
lblOutcome.Text = "YOU LOSE"
comscore = comscore + 1
lblComScoreVal.Text = CStr(comscore)
End If
' IF PLAYER CHOOSES SCISSORS
If rbScissors.Checked And num = rock Then
lblPlayerChoice.Text = "You Chose Scissors"
lblComChoice.Text = "Computer Chose Rock"
lblOutcome.Text = "YOU LOSE"
comscore = comscore + 1
lblComScoreVal.Text = CStr(comscore)
ElseIf rbScissors.Checked And num = paper Then
lblPlayerChoice.Text = "You Chose Scissors"
lblComChoice.Text = "Computer Chose Paper"
lblOutcome.Text = "YOU WIN"
playerscore = playerscore + 1
lblPlayerScore.Text = CStr(playerscore)
ElseIf rbScissors.Checked And num = scissors Then
lblPlayerChoice.Text = "You Chose Scissors"
lblComChoice.Text = "Computer Chose Scissors"
lblOutcome.Text = "DRAW"
End If
If playerscore = 10 Then
Dim victory As MsgBoxResult = MsgBox("You Won, Congratulations!" & vbCrLf & "Would You Like To Play Again?", "VICTORY", MessageBoxButtons.YesNo)
If victory = MsgBoxResult.Yes Then
playerscore = 0
comscore = 0
lblPlayerScoreVal.Text = CStr(playerscore)
lblComScoreVal.Text = CStr(comscore)
lblPlayerChoice.Text = Nothing
lblComChoice.Text = Nothing
lblOutcome.Text = Nothing
Else
Me.Close()
End If
End If
If comscore = 10 Then
Dim defeat As MsgBoxResult = MsgBox("You Were Defeated, Unlucky!" & vbCrLf & "Would You Like To Play Again?", MessageBoxButtons.YesNo)
If defeat = MsgBoxResult.Yes Then
playerscore = 0
comscore = 0
lblPlayerScoreVal.Text = CStr(playerscore)
lblComScoreVal.Text = CStr(comscore)
lblPlayerChoice.Text = Nothing
lblComChoice.Text = Nothing
lblOutcome.Text = Nothing
Else
Me.Close()
End If
End If
Catch ex As Exception
End Try
End Sub
End Class