You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy实现简单井字棋时switch语句无法修改二维数组元素问题

问题根因

你代码的核心问题是输入值的类型和switch的case值类型不匹配:
调用readLine()获取到的用户输入是字符串类型,而你switch里的case判断的是1~9的整数,Groovy不会默认做类型转换匹配,因此所有case分支都不会被触发,自然无法替换数组里的空格。

修复方法

任选下面一种即可:

  • 方式1:把用户输入转为整数
    修改获取输入的代码为:
def input = System.in.newReader().readLine() as Integer

建议额外加输入合法性校验,避免用户输入非数字内容报错。

  • 方式2:把switch的case改为字符串匹配
    把所有case后的数字改为带引号的字符串即可,例如:
switch(input){
    case "1":
        gameBoard[0][0] = 'X'
        break
    case "2":
        gameBoard[0][2] = 'X'
        break
    // 其余case同理修改即可
}

修改后运行代码,输入对应数字即可正常替换X显示。

内容的提问来源于stack exchange,提问作者Kadie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:09:00