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

二维字符串数组循环搜索异常:输入匹配ID仍提示错误

二维数组ID搜索功能错误修复

你的代码核心问题出在for循环的逻辑判断上:当前代码只检查数组的第一行,一旦第一行的ID不匹配,就直接输出incorrect!并终止循环,完全没机会检查后续行的ID。哪怕目标ID在数组的第二行及以后,程序也会直接判定为不匹配。

修复方案

调整循环逻辑,先遍历所有行寻找匹配项,仅当全部遍历完成仍未找到时,才输出错误提示:

public void getWorkId(){
    int i = 0;
    do{
        // 输入ID
        System.out.println("id: ");
        workId = input.next();
        // 标记是否找到匹配
        boolean found = false;
        // 遍历所有行搜索匹配ID
        for(int row = 0; row < mangerTable.length; row++){
            if(mangerTable[row][1].equals(workId)){
                // 找到匹配,标记并终止遍历
                found = true;
                break;
            }
        }
        // 根据搜索结果处理流程
        if(found){
            i = 1;
        } else {
            System.out.println("incorrect!");
            i = -1;
        }
    } while(i > 0);
}

关键调整说明

  • 新增found布尔变量专门标记匹配状态,替代原i变量的标记功能,逻辑更清晰
  • 移除for循环内的else分支,避免第一次不匹配就终止循环,确保遍历完所有行
  • 遍历结束后统一判断匹配结果,再输出对应提示,避免提前触发错误信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 11:45:36