How to know which conditional is giving true?

7

For example, I have the following if :

if(!condicao1 || !condicao2 || !condicao3){
  retorno erro com a condiçao que nao existe
}

When it enters this if I would like to know which of the parameters is missing to return an error.

    
asked by anonymous 04.01.2018 / 02:07

2 answers

11

It's simple, if you want to know individually you have to do it individually:

if (!condicao1) {
    //Faça o que precisa aqui
}
if (!condicao2) {
    //Faça o que precisa aqui
}
if (!condicao3) {
    //Faça o que precisa aqui
}

Eventually you can do something general too:

if (!condicao1 || !condicao2 || !condicao3) {
    //faz algo geral aqui
    if (!condicao1) {
        //Faça o que precisa aqui
    }
    if (!condicao2) {
        //Faça o que precisa aqui
    }
    if (!condicao3) {
        //Faça o que precisa aqui
    }
}
    
04.01.2018 / 02:11
3
  

It seemed like a title conflict with the text of the question: missing =    false ? I took the title into account because it is clearer that you want to know what you are giving true .

If you want to know if only 1 of the parameters is true , you can do this:

condicao1 = false;
condicao2 = true;
condicao3 = false;

if(!condicao1 || !condicao2 || condicao3){
    if(condicao1 || condicao2){
        if(condicao1){
            alert("condicao1 é true");
        }else{
            alert("condicao2 é true");
        }
    }else{
        alert("condicao3 é true");
    }
}

Or you can do it straight:

condicao1 = false;
condicao2 = true;
condicao3 = false;

if(condicao1 || condicao2){
    if(condicao1){
        alert("condicao1 é true");
    }else{
        alert("condicao2 é true");
    }
}else{
    alert("condicao3 é true");
}
    
04.01.2018 / 02:49