Question

Comment puis-je vérifier si une condition passe plusieurs valeurs?

Exemple:

if(number == 1,2,3)

Je sais que des virgules ne fonctionnent pas.

Était-ce utile?

La solution

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

Autres conseils

Si vous utilisez PHP, supposons alors votre liste des numéros est un tableau

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

alors pour tout élément, vous pouvez utiliser

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

Structure de fonction:

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

L'espoir qui aide.

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

Quelle langue?

Par exemple, dans VB.NET vous utilisez le mot OR et en C # vous utilisez ||

Puisque vous ne spécifiez pas la langue ajouter une solution Python:

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

Dans T-SQL, vous pouvez utiliser l'opérateur IN:

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

Si vous utilisez une collection il y a peut-être un opérateur contient une autre façon de le faire.

En C # pour une autre façon qui peut être plus facile d'ajouter des valeurs:

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

Je suppose un langage C-style, voici une introduction rapide sur le SI ET logique OU:

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)
}

Ainsi, vous pouvez voir comment vous pouvez enchaîner ces contrôles pour créer une logique assez complexe.

Pour une liste des nombres entiers:

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);
    }

En Java, vous avez des objets qui enveloppent les variables primitives (entier pour int, Long longtemps, etc.). si vous regardez pour comparer les valeurs entre un grand nombre de numéros complets (ints), ce que vous pouvez faire est de lancer un tas d'objets entiers, les choses à l'intérieur d'un itérables comme un ArrayList, itérer sur eux et comparer.

quelque chose comme:

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
    }
}

bien sûr quelques valeurs ce peut-être un peu difficile à manier, mais si vous voulez comparer contre un grand nombre de valeurs, cela fonctionnera bien.

Une autre option est d'utiliser java Définit , vous pouvez placer beaucoup de valeurs différentes (la collection triera votre entrée, ce qui est un plus), puis appeler la méthode .contains(Object) pour localiser l'égalité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top