java - 如何限制变量的值?

标签 java list variables methods

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/

相关文章:

java - 从 master 或 hotfix 部署到生产环境?

swift - SwiftUI 中的旋转木马/侧边栏列表样式

list - F# 交错 2 列表

javascript - 基础 - 变量引用

java - 在java中对变量应用AND操作

java - 当只有按钮对象具有 .addActionListener 时,为什么此代码中的 JFrame 会对 ActionEvents 使用react?

java - 测试 BigDecimal 是否可以更改其他 BigDecimal 的整数部分

java - 如何在 Eclipse 中将断点切换到整个类?

python - 如何在列表中比较python中的字符串?

javascript - Javascript 中的返回值和变量范围