Profissional prof = new Profissional(null, null);
List<Profissional> profissional = new ArrayList<Profissional>();
Scanner sc = new Scanner(System.in);
while(true) {
String comando = sc.next().toUpperCase();
if (comando.contentEquals("RP")) {
String categoriaPro = sc.next();
if(!categoriaPro.equals("Medicina")) {
System.out.println("Categoria inexistente");
}else if(!categoriaPro.equals("Enfermagem")) {
System.out.println("Categoria inexistente");
}else if(!categoriaPro.equals("Auxiliar")) {
System.out.println("Categoria inexistente");
}
String nomePro = sc.next();
prof.NomeVerificacao(profissional , nomePro, categoriaPro);
}
if(comando.contentEquals("SAIR")) {
break;
}
}
for(Profissional pro : profissional) {
System.out.println(pro);
}
这是我的主要内容。
public class Profissional {
private String nome;
private String categoria;
public Profissional(String nome, String categoria) {
this.nome = nome;
this.categoria = categoria;
}
// getters and setter
public void NomeVerificacao(List<Profissional> profissional, String nome, String categoria) {
if (profissional.isEmpty() == true) {
profissional.add(new Profissional(nome, categoria));
} else {
int i = 0;
for (; i < profissional.size(); i++) {
if (profissional.get(i).nome.equals(nome)) {
System.out.println("Profissional existente.");
break;
}
}
if (i == profissional.size()) {
profissional.add(new Profissional(nome, categoria));
}
}
}
}
我正在尝试创建对象,在本例中是医院的专业人员。 所做的是不能有超过一名同名的专业人士,但我不知道如何将“categoriaPro”的值限制为“Medicina”、“Enfermagem”和“Auxiliar”。 如果不是其中之一,我会打印消息“Categoria inexistente”。 但它不起作用。 任何人都可以帮忙吗?
最佳答案
要将变量限制为特定值,请查看 this 。
此外,您还需要在条件之后有一个 AND 语句,并且只有当它们全部失败时才打印“Categoria inexistente”
if(!categoriaPro.equals("Medicina") && !categoriaPro.equals("Enfermagem") && !categoriaPro.equals("Auxiliar")) {
System.out.println("Categoria inexistente");
}
以上检查是否不是其中任何一个。
关于java - 如何限制变量的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59585914/