IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Comprendre les boucles imbriquées


Sujet :

Langage Java

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut Comprendre les boucles imbriquées
    bonjour, je suis tombée sur ce code : et avec l'utilisation des ++ et -- postfix!
    je pensais avoir la bonne réponse mais je suis à côté de la plaque :
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                        for(int i = 0; i < 2; i++) { 
     
    		         for(int j = 2; j>= 0; j--) {
     
    		            if(i == j) break;
     
    		            System.out.println("i=  " + i + " j=  "+ j);
    		         }
     
    		      }
    et le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    i=  0 j=  2
    i=  0 j=  1
    i=  1 j=  2
    pourquoi i est à zéro deux fois ? et j reviens à 2?
    si quelqu'un peut m'aider à comprendre la logique des boucles imbriquées?

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par prugne Voir le message
    pourquoi i est à zéro deux fois ? et j reviens à 2?
    si quelqu'un peut m'aider à comprendre la logique des boucles imbriquées?
    Premier passage dans la premiere boucle :
    Premier passage dans la seconde boucle :
    i = 0 et j = 2, le test échoue et on affiche le résultat.

    Second passage dans la seconde boucle :
    i = 0 et j = 1, le test échoue et on affiche le résultat.

    Troisième passage dans la seconde boucle :
    i = 0 et j = 0, le test réussi, on sort de la seconde boucle et on n'affiche rien.

    Second passage dans le premiere boucle :
    Premier passage dans la seconde boucle :
    i = 1 et j = 2, le test échoue et on affiche le résultat.

    Second passage dans la seconde boucle :
    i = 1 et j = 1, le test réussi, on sort de la seconde boucle et on n'affiche rien.

    Troisième passage dans la première boucle :
    i = 2, il est trop grand et on sort de la première boucle.


    Mako.

  3. #3
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par prugne Voir le message
    pourquoi i est à zéro deux fois ? et j reviens à 2?
    si quelqu'un peut m'aider à comprendre la logique des boucles imbriquées?
    i est à zéro deux fois car la boucle de j (qui est inclue dans celle de i) fait deux passages durant une itération de i.

    Lorsqu'on passe à la deuxième itération de i, on reprend à zéro la boucle de j et j est donc réinitialisée à sa valeur de base qui est 2.

    Le principe des boucles imbriquées est :
    1. On rentre dans la boucle englobante.
    2. On rentre dans la boucle inclue et on la parcours jusqu'à arriver à sa condition de sortie.
    3. On sort de la boucle inclue et on revient donc au niveau de la boucle englobante.
    4. On itère sur la boucle englobante et l'on revient donc sur la boucle inclue.
    5. Et ainsi de suite..
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  4. #4
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut encore un souci de compréhension
    Bonjour,
    je continue sur ma lançée - j'ai trouvé ce code et je pensai avoir la bonne réponse avec une boucle for imbriquée dans un while mais je ne comprends pas pourquoi la réponse est 100
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	public static void main(String[] args) {
    		int i = 0, nbre = 0;
     
    		  while(i <= 9)
    		    {
    	     for (int j = 0; j < 10; j++)
    	        nbre++;
    	        i++;
    	     }
     
    	  System.out.print(nbre);
     
    	}
    je cherche mais je ne comprends pas

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2010
    Messages
    394
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2010
    Messages : 394
    Points : 1 212
    Points
    1 212
    Par défaut
    Citation Envoyé par prugne Voir le message
    je cherche mais je ne comprends pas
    La meilleure façon de faire serait de mettre des System.out.println(); un peu partout, pour voir ce qu'il se passe (ce qui revient à ce que j'avais fait pour ta première question).

    Sinon, c'est exactement le même cas de figure qu'avec les deux boucles for imbriquées, excepté qu'il s'agit là d'une boucle while pour la première. Mais le raisonnement qui a été expliqué précédemment est rigoureusement le même.

    Mako.

    EDIT : C'est peut-être la syntaxe qui t'induit en erreur dans ce cas précis. En effet, tel quel, le i++ n'est pas dans la boucle for !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 71
    Points : 89
    Points
    89
    Par défaut
    En réindentant correctement et en rajoutant l'accolade sur le for, ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public static void main(String[] args) {
      int i = 0, nbre = 0;
      while(i <= 9){
        for (int j = 0; j < 10; j++){
          nbre++;
        }
        i++;
      }
      System.out.print(nbre);
    }
    Est-ce plus clair?

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 134
    Points : 66
    Points
    66
    Par défaut oui merci pour vos explications
    oui merci pour vos explications

Discussions similaires

  1. Selectionner toutes les CheckBoxs avec boucle imbriquée.
    Par Azaxx dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/07/2011, 14h51
  2. je comprends pas les (boucles imbriquées)
    Par nitch01 dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 08/11/2009, 15h57
  3. afficher les données d'une Boucle imbriquée
    Par doria_serine dans le forum BIRT
    Réponses: 8
    Dernier message: 20/08/2009, 19h11
  4. [Smarty] boucles imbriquées avec requêtes SQL, impossible à comprendre
    Par dexxter dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 18/05/2007, 23h52
  5. [Optimisation]Eviter les boucles imbriquées
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 09/03/2007, 17h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo