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

Java中变量j始终为0且IntelliJ提示j++未使用的问题求助

问题分析与修复方案

核心问题

  1. 外层循环逻辑失效:外层循环的else块直接执行return,导致只要第一个遍历的账户不是源账户,程序就直接终止,完全不会遍历整个listaClientes去查找正确的源账户。
  2. 内层循环未正常遍历:内层循环的else块同样直接return,导致j始终停在0——只要第一个账户不是目标账户,程序就终止,j++完全没机会执行,自然触发IntelliJ的提示。

修复后的代码

for(int i = 0; i < listaClientes.size(); i++){
    if(listaClientes.get(i).getNumero() == numContaOrigem){
        System.out.println("Qual o numero da conta de destino? (TRANSFERÊNCIA)");
        int numContaDestino = teclado.nextInt();
        
        boolean destinoEncontrado = false;
        for (int j = 0; j < listaClientes.size(); j++){
            if(listaClientes.get(j).getNumero() == numContaDestino){
                destinoEncontrado = true;
                System.out.println("Qual o valor da transferencia?");
                double valorTransf = teclado.nextDouble();
                if(listaClientes.get(i).transferencia(valorTransf, listaClientes.get(j))){
                    System.out.println("Transferência realizada!");
                }else{
                    System.out.println("Saldo insuficiente! Transferência não realizada!");
                }
                return;
            }
        }
        
        // 遍历完所有账户未找到目标才提示
        if(!destinoEncontrado){
            System.out.println("Cliente destino não encontrado!");
            return;
        }
    }
}

// 遍历完所有账户未找到源才提示
System.out.println("Cliente origem não encontrado!");

修复要点

  • 移除外层循环else块的return,改为遍历完整个列表后再判断是否找到源账户。
  • 内层循环去掉else块的return,用布尔标记记录是否找到目标账户,遍历结束后再输出未找到的提示。
  • 调整后两个循环都能完整遍历列表,j++可正常执行,解决IntelliJ的提示问题,同时实现“找到第一个账户后再搜索第二个”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 03:20:32