52 votes

Donner plusieurs conditions dans une boucle for en Java

Je cherchais "Comment donner plusieurs conditions dans une boucle for". Mais il n'y a pas de réponses directes données.

Après quelques recherches, j'ai trouvé la bonne méthode. Les conditions ne doivent pas être séparées par des virgules (,) ou des points-virgules ( ;). Nous pouvons utiliser l'opérateur && pour joindre les deux conditions ensemble.

for( initialisation ; condition1 && condition2 ; incrémentation)

Exemple :

for(int j= 0; j < 6 && j < ((int)abc[j] & 0xff) ; j++ ) 
{
//
}

J'espère que cela aidera les nouveaux développeurs Java.

40voto

OscarRyz Points 82553

Vous pouvez également utiliser l'opérateur "ou",

for( int i = 0 ; i < 100 || someOtherCondition() ; i++ ) {
  ...
}

16voto

Andreas_D Points 64111

Une déclaration de base pour comprend

  • 0..n déclarations d'initialisation ( ForInit )
  • 0..1 déclarations d'expression qui évaluent à boolean o Boolean ( ForStatement ) et
  • 0..n déclarations de mise à jour ( ForUpdate )

Si vous avez besoin de plusieurs conditions pour construire votre ForStatement, puis utilisez les opérateurs logiques standard ( && , || , | , ...) mais - Je suggère d'utiliser une méthode privée si cela devient trop compliqué :

for (int i = 0, j = 0; isMatrixElement(i,j,myArray); i++, j++) { 
   // ...
}

y

private boolean isMatrixElement(i,j,myArray) {
  return (i < myArray.length) && (j < myArray[i].length);  //  stupid dummy code!
}

8voto

Krishna Points 806

Il est possible d'utiliser plusieurs variables et conditions dans une boucle for comme dans l'exemple ci-dessous.

 for (int i = 1, j = 100; i <= 100 && j > 0; i = i - 1 , j = j-1) {
     System.out.println("Inside For Loop");
 }

0voto

teodozjan Points 486

Vous pouvez également remplacer une condition compliquée par un simple appel de méthode pour que la maintenance soit moins pénible.

0voto

David Rodrigues Points 2448

Si vous préférez un code avec un joli look, vous pouvez faire une pause :

for(int j = 0; ; j++){
    if(j < 6
    && j < ( (int) abc[j] & 0xff)){
        break;
    }

    // Put your code here
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X