VB井字棋游戏报“字符串“O”转Double类型无效”错误问题咨询
报错产生原因
错误出在胜负判断的代码行,数组元素比较的语法书写错误:
你写的Array(0, 0 = "O")会被VB判定为:先计算括号内的0 = "O"表达式结果,再把该结果作为数组的第二个索引参数取值。计算0 = "O"时,VB会尝试把字符串"O"转换为Double类型和数字0做等值判定,转换失败就抛出了你遇到的报错。
修复方法
把等值判断逻辑移到数组取值的括号外侧,修正后的胜负判断代码如下:
If Array(0, 0) = "O" And Array(0, 1) = "O" And Array(0, 2) = "O" Then MsgBox("Player A, you win!") End If
其余行的同类判断逻辑也按照上述格式修正即可。
额外优化建议:InputBox返回的是字符串类型,直接赋值给整型变量i、j时,如果用户输入非数字内容也会触发类型转换报错,可以增加IsNumeric判断校验输入合法性后再做坐标赋值。
内容的提问来源于stack exchange,提问作者TomH
相关产品推荐
相关产品推荐

