Pergunta

Como posso verificar se uma condição passa vários valores?

Exemplo:

if(number == 1,2,3)

Eu sei que vírgulas não funcionam.

Foi útil?

Solução

if (number == 1 || number == 2 || number == 3)

Outras dicas

Se você estiver usando PHP, suponha que sua lista de números seja uma matriz

$list = array(1,3,5,7,9);

Então, para qualquer elemento, você pode usar

if(in_array($element, $list)){
//Element present in list
}else{
//not present.
}

Estrutura de funções:

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

Espero que ajude.

if ((number >= 1) && (number <= 3))

Que lingua?

Por exemplo, no vb.net, você usa a palavra ou, e em c# você usa ||

Como você especifica nenhum idioma, adiciono uma solução Python:

if number in [1, 2, 3]:
    pass

No T-SQL, você pode usar o operador em:

select * from MyTable where ID in (1,2,3)

Se você estiver usando uma coleção, pode haver um operador contém outra maneira de fazer isso.

Em C# de outra maneira que pode ser mais fácil adicionar valores:

    List<int> numbers = new List<int>(){1,2,3};
    if (numbers.Contains(number))

Vou assumir um idioma de estilo C, aqui está uma cartilha rápida sobre se e ou lógica:

if(variable == value){
    //does something if variable is equal to value
}

if(!variable == value){
    //does something if variable is NOT equal to value
}

if(variable1 == value1 && variable2 == value2){
    //does something if variable1 is equal to value1 AND variable2 is equal to value2
}

if(variable1 == value1 || variable2 = value2){
    //does something if variable1 is equal to value1 OR  variable2 is equal to value2
}

if((variable1 == value1 && variable2 = value2) || variable3 == value3){
    //does something if:
    // variable1 is equal to value1 AND variable2 is equal to value2
    // OR variable3 equals value3 (regardless of variable1 and variable2 values)
}

if(!(variable1 == value1 && variable2 = value2) || variable3 == value3){
    //does something if:
    // variable1 is NOT equal to value1 AND variable2 is NOT equal to value2
    // OR variable3 equals value3 (regardless of variable1 and variable2 values)
}

Para que você possa ver como pode encadear essas verificações para criar uma lógica bastante complexa.

Para uma lista de números inteiros:

static bool Found(List<int> arr, int val)
    {
        int result = default(int);
        if (result == val)
            result++;

        result = arr.FindIndex(delegate(int myVal)
        {
            return (myVal == val);
        });
        return (result > -1);
    }

Em Java você tem objetos que envolvem variáveis ​​primitivas (Integer para int, Long para long, etc).se você quiser comparar valores entre vários números completos (ints), o que você pode fazer é iniciar um monte de objetos Integer, colocá-los dentro de um iterável como um ArrayList, iterar sobre eles e comparar.

algo como:

ArrayList<Integer> integers = new ArrayList<>();
integers.add(13);
integers.add(14);
integers.add(15);
integers.add(16);

int compareTo = 17;
boolean flag = false;
for (Integer in: integers) {
    if (compareTo==in) {
    // do stuff
    }
}

é claro que para alguns valores isso pode ser um pouco complicado, mas se você quiser comparar com muitos valores, funcionará bem.

Outra opção é usar java Conjuntos, você pode colocar vários valores diferentes (a coleção classificará sua entrada, o que é uma vantagem) e então invocar o .contains(Object) método para localizar a igualdade.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top