comment sortir du while quand la condition est faite

bonjour,

j'ai un petit problème pour quitter la condition while,

ce que je voudrais faire :
faire une condition
une fois que la condition faites, faire une deuxième condition (celle du while)
quand celle du while est faites, quitter cette boucle et recommencer la première

voici le bout code avec la première condition et celle du while

merci d'avance

void loop() {

if ( ! mfrc522.PICC_IsNewCardPresent()){ //appel de la fonction de la bibliothèque MFRC522  
    return;  //si pas de badge ne rien faire
  }
  if ( ! mfrc522.PICC_ReadCardSerial()){ //appel de la fonction de la bibliothèque MFRC522 
    return;  //si problème de lecture ne rien faire
  }
  String tag= ""; //stocker l'UID dans la variable tag
  
  for (byte i = 0; i < mfrc522.uid.size; i++) { // boucle pour lire chaque octet et la retranscrire dans un format hexa
    tag.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
    tag.concat(String(mfrc522.uid.uidByte[i], HEX)); 
  }
  
  tag.toUpperCase(); //permet de mettre en majuscule  voir test avec et sans cette ligne de code
  
  Serial.println(tag); //pour vérifier : affichage du contenu de tag
  
  delay(1000); //délais de 1 s pour éviter les rebond

 while (tag !=0) {
 etatCapteurDepart = digitalRead(capteurDepart); //lecture du capteur depart et affecte sa valeur a etat capteur depart
 etatCapteurArrive = digitalRead(capteurArrive); //lecture du capteur arrive et affecte sa valeur a etat capteur arrive
  
if (etatCapteurDepart == LOW && etatChrono == false) //Si capteur de depart coupé et chrono arrêté --> demarrer le chrono
 {
   tempsON = millis();   //la variable tempsON prend la valeur millis
   //Serial.println("Chrono ON"); //affiche : chrono on
   etatChrono = true; //etat du chrono prend la valeur vrai --> chrono lancé
   delay(100);   //délais de 100 ms pour contrer les rebonts 
 }
   
 if (etatCapteurArrive == LOW && etatChrono == true) //Si etat du capteur d'arrive est coupé et chrono en marche --> arreter le chrono
 {
  tempsOFF = (millis() - tempsON);   //la variable tempsOFF est égal à la valeur de millis - celle de tempsON --> millis n'est pas rellement un chrono, il est excuté au lancement, il faut un temps 1 - temps 0 pour avoir le temps
  minutes = ((tempsOFF / 1000) / 60); // pour avoir le temps en minute : (1 min = 60 000 ms) donc exemple : tempsOFF = 60 000 ms / 1000 = 60 / 60 = 1 min
  //Serial.println(minutes);
  secondes = ((tempsOFF / 1000) % 60); // pour avoir le temps en secondes faut utiliser le modulo, exemple tempsOFF = 50 000 / 1000 = 50 %60 = 50 s
  //Serial.println(secondes);
  millisecondes = (tempsOFF % 1000);  // pour avoir le temps en millisecondes, même principe faut utiliser le modulo, exemple tempsOFF = 1235 % 1000 = 235 --> 1235 ms contient 235 ms
  //Serial.println(millisecondes);

  tempsAEnvoyer [0] = minutes;  //les minutes sont attribuées à tempsAEnvoyer à la ligne 1
  tempsAEnvoyer [1] = secondes;  //les secondes sont attribuées à tempsAEnvoyer à la ligne 2
  tempsAEnvoyer [2] = millisecondes;  //et les millisecondes sont attribuées à tempsAEnvoyer à la ligne 3

 for (int tableau=0; tableau <=2; tableau +=1) {  //pour afficher le contenu du tableau
  Serial.print(tempsAEnvoyer[tableau]); // le temps contenu dans tempsAEnvoyer sera affiché
  Serial.print (":"); //caractère " : " pour séparer les minutes : secondes : milisecondes 
 }
   etatChrono = false;   //etat du chrono prend la valeur false --> chrono arrêté
   delay(1000);
 }
   }
}

Un break; force la sortie instantanée du while meme si sa condition n’est pas satisfaite

oui c'est bon merci c'est réglé