Un guide de 4 minutes sur les boucles Java


  • Français


  • Une boucle while exécute un ensemble de tâches tant qu’une condition prédéfinie est vraie. Ceci est considéré comme une structure de contrôle qui dirige le flux d’un programme. C’est un moyen pour vous de dire à votre code quoi faire en définissant une condition qu’il peut tester et d’agir en fonction de ce qu’il trouve. Les deux types de boucles while en Java sont while et do while.

    Boucle while Java

    Une boucle while est destinée à parcourir les données jusqu’à ce qu’une condition soit satisfaite. Pour créer une boucle while, vous fournissez une condition qui peut être testée, suivie du code que vous souhaitez exécuter. Java possède plusieurs fonctions de test intégrées, dont les plus simples sont les opérateurs mathématiques (<, >, ==etc):

    package com.opensource.example;
    
    public class Example {
      public static void main(String[] args) {
    
      int count = 0;
      while (count < 5) {
        System.out.printf("%d ", count);
        count++;
        }
      }
    }

    Dans cet exemple simple, la condition est que la variable count est inférieur à 5. Parce que count est instancié à 0, puis incrémenté de 1 dans le code dans la boucle while, le programme itère 5 fois au total :

    $ java ./while.java
    0 1 2 3 4

    Avant de pouvoir itérer une sixième fois, la condition n’est plus vraie, donc la boucle se termine.

    L’instruction conditionnelle pour une boucle while est essentielle. Une erreur peut signifier que votre boucle ne s’exécute jamais. Par exemple, supposons que vous ayez défini count == 5 comme condition :

      while (count == 5) {
        System.out.printf("%d ", count);
        count++;

    Lorsque vous exécutez le code, il se construit et s’exécute correctement, mais rien ne se passe :

    $ java ./while.java
    $

    La boucle a été ignorée car count a été défini sur 0, et il est toujours à 0 au moment où la boucle while est rencontrée pour la première fois. La boucle n’a jamais de raison de démarrer et count n’est jamais incrémenté.

    L’inverse est lorsqu’une condition commence comme vraie et ne peut jamais être fausse, cela se traduit par une boucle infinie.

    Boucle Java do while

    Semblable à la boucle while, une boucle do while teste la condition à la fin, et non au début, de chaque itération. Avec cela, le code de votre boucle s’exécute au moins une fois car il n’y a pas de passerelle vers l’entrée, seulement une passerelle vers la sortie :

    package com.opensource.example;
    
    public class Example {
      public static void main(String[] args) {
    
      int count = 9;
      do {
          System.out.printf("%d ", count);
          count++;
        } while(count == 5);
      }
    }

    Dans cet exemple de code, count est réglé sur 9. La condition pour que la boucle se répète est que count est égal à 5. Mais 9 n’est pas égal à 5. Cette vérification n’est cependant effectuée qu’à la fin de la première itération :

    $ java ./do.java
    9

    Boucles infinies Java

    Une boucle infinie, comme son nom l’indique, ne se termine jamais. Parfois, ils sont créés par erreur, mais une boucle infinie a un cas d’utilisation valide. Parfois, vous souhaitez qu’un processus se poursuive indéfiniment (c’est fonctionnellement infini car vous ne pouvez pas garantir quand vous en avez besoin pour s’arrêter), et vous pouvez donc définir votre condition sur quelque chose d’impossible à respecter.

    Supposons que vous ayez écrit une application qui compte le nombre de zombies restant dans votre quartier pendant une apocalypse zombie. Pour simuler l’incertitude sur le nombre de boucles nécessaires pour atteindre 0 zombies, mon code de démonstration récupère un horodatage du système d’exploitation et définit la valeur du compteur (c) à un certain nombre dérivé de cet horodatage. Comme il s’agit d’un exemple simple et que vous ne voulez pas vraiment vous retrouver piégé dans une boucle infinie, ce code compte jusqu’à zéro et utilise le break fonction pour forcer la boucle à se terminer :

    package com.opensource.example;
    
    public class Example {
      public static void main(String[] args) {
    
      long myTime = System.currentTimeMillis();
    
      int c;
    
      if ( myTime%2 == 0 ) {
          c = 128;
      } else {
          c = 1024;
      }
    
      while(true) {
        System.out.printf("%d Zombies\n", c);
    
        // break for convenience
        if ( c <= 0 ) { break; }
        c--;
        }
      }
    }

    Vous devrez peut-être l’exécuter plusieurs fois pour déclencher un nombre total différent de zombies, mais parfois votre programme itère 128 fois et d’autres fois 1 024 fois :

    $ java ./zcount.java
    1024 Zombies
    1023 Zombies
    [...]
    0 Zombies

    Pouvez-vous dire pourquoi les boucles se terminent à 0 et non à -1 ?

    Boucles Java

    Les boucles vous permettent de contrôler le flux d’exécution de votre programme. L’itération est courante en programmation, et que vous utilisiez une boucle while, une boucle do while ou une boucle infinie, il est essentiel de comprendre le fonctionnement des boucles.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code