Salut,
Je ne vois pourquoi tu parles de boucle au sujet de cet expression (il n'y en a aucune) :
f (position == Array.get(1)|| position == Array.get(4)) {
C'est quoi cette variable Array ? C'est quoi son type (sa classe) ? Si tu parles d'un tableau Java, on aurait plutôt if ( position == array[1] || position == array[4] ). Cela dit, ceci n'a rien à voir avec ton premier test (position == 1 || position == 4) qui compare une variable de type int à 2 constantes de type int, alors que if ( position == array[1] || position == array[4] ) compare cette même variable au contenu de cases d'un tableau de type int.
Par ailleurs, je ne vois pas ce qui te gêne au juste avec ton expression. Tu voudrais pouvoir faire quelque chose dans le genre :
if ( position in (1,4, 5, 28, etc.) {
, c'est ça ?
A part utiliser un switch, ou une méthode utilitaire éventuellement, toutes autres moyens sera de toutes manières plus complexe et moins efficace que de faire comme tu montres, sauf cas très particuliers comme par exemple celui où les valeurs seraient contiguës, auquel cas, un test du genre if ( min<= position && position<=max ) pourrait être intéressant, ou autre exemple, s'il s'agit de tester des valeurs qui correspondent à une fonction simple (par exemple, si le test est du type de sélectionner les nombres paires avec if ( position%2==0 )).
Ou alors la liste de valeurs à comparer est dynamique (varie à chaque test) ? (dans ce cas, on peut résoudre ça en passant éventuellement par une liste (en y mettant toutes les valeurs) et avec la méthode List.contains().
Partager