【发布时间】:2014-12-04 23:58:00
【问题描述】:
我需要搜索一个数组并找到某个值,如果存在则返回true,如果不存在则返回false。
数组:
private String zonaDeInternamento[][][] = {
{
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "0012", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"}
},
{
{"Livre", "0013", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"},
{"Livre", "Livre", "Livre", "Livre"}
}
};
因此,如果搜索找到其中一个数字,则返回 true,如果找到“Livre”,则返回 false;
public boolean isPacienteInternado(String numeroProcesso) {
if (isNumeroProcessoValido(numeroProcesso)) {
for (int i = 0; i < zonaDeInternamento.length; i++) {
for (int j = 0; j < zonaDeInternamento[i].length; j++) {
for (int h = 0; h < zonaDeInternamento[i][j].length; h++) {
if ((zonaDeInternamento[i][j][h].equals(numeroProcesso))) {
System.out.println("O paciente com número de processo " + numeroProcesso + " está internado!");
return true;
} else {
System.out.println("O paciente com número de processo " + numeroProcesso + " não está internado!");
return false;
}
}
}
}
}
return false;
}
它一直返回 false,从不进入 if 语句,返回 else 消息和 false。当 numeroProcesso 为 13 或 12 时,运行调试 if ((zonaDeInternamento[i][j][h].equals(numeroProcesso))) 返回 false。我错过了什么?
【问题讨论】:
-
您需要迭代所有项目,然后再确定项目是否存在。删除嵌套的
for内的else循环。 -
那么只检查 if 语句中的一个条件
-
我需要这个语句 if (!((zonaDeInternamento[i][j][h].equals(numeroProcesso)))) 被返回为假,并且需要它在嵌套的 for
标签: java arrays multidimensional-array