Java中变量j始终为0且IntelliJ提示j++未使用的问题求助
问题分析与修复方案
核心问题
- 外层循环逻辑失效:外层循环的
else块直接执行return,导致只要第一个遍历的账户不是源账户,程序就直接终止,完全不会遍历整个listaClientes去查找正确的源账户。 - 内层循环未正常遍历:内层循环的
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
相关产品推荐
相关产品推荐

