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

JavaScript Discussion :

Boucle et compteur


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut Boucle et compteur
    Bonjour, je n'arrive à m'en sortir sur une boucle écrite en javascript. C'ets plus un problème de logique.
    Voici pour la description:
    J'ai une liste de solution suite à une requête au nombre de 1000.
    Sur ces 1000 résultats, je veux écrire en javascript en boucle qui me permet de les traiter par bloc de 100 avant de les insérer.
    En gros il faut que j'arrive a faire:

    je fais un select sur une table, j'ai 1000 lignes en sortie
    Tant que mon compteur i(par exemple) < 1000
    Alors je fais un bloc de 100 lignes pour les insérer dans une autre table
    Puis je passe au bloc suivant
    jusqu'à ce que j'arrive à 1000 (i=1000)
    1-La logique vous parait-elle correcte ?
    2-Je m'y perds avec les while et les for

    Sans me donner la solution complète, je voudrais juste qu'on m'aide sur la structure de la boucle et comment incrémenter correctement mes compteurs

    Merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    tu peux utiliser le modulo du compteur
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for( var i=0; i <1000; i++){
      if( (i+1)%100 == 0){  // 99, 199, 299 etc...
        // action  à faire
      }
    }

  3. #3
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Ta logique est un peu trop vague : quand tu dis « je fais un bloc de 100 lignes », tu ne décomposes pas asez les étapes.

    Tu vas devoir faire deux boucles : une « grande » pour les 1000 résultats, et une « petite » pour les 100 lignes de chaque bloc. La petite sera incluse dans la grande. Si on décompose étape par étape, ça donne un truc comme ça :
    Code pseudo langage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    1er tour de grande boucle:
       (il reste 1000 résultats)
       1er tour de petite boucle:
          je traite un résultat, c'est le 1er de ce bloc, il en reste 99
       fin du 1er tour de petite boucle
       2e tour de petite boucle:
          je traite un résultat, c'est le 2e du bloc, restent 98
       fin du 2e tour de petite boucle
      
       ...
    
       fin du 100e tour de petite boucle
       j'ai un bloc de 100 lignes, je l'insère
    fin du 1er tour de grande boucle
    
    2e tour de grande boucle:
       (il reste 900 résultats)
       ... petite boucle ...
       j'insère le nouveau bloc
    fin du 2e tour de grande boucle

    J'ai mis en gras des procédures qui restent à décomposer mais qui ne correspondent pas à ta question.

    Pour s'y retrouver entre une boucle for et une boucle while, sache qu'elles font quasiment la même chose. La seule vraie différence c'est que la boucle for a un compteur intégré.

    Les bonnes questions à se poser c'est :
    - comment savoir quand les boucles doivent s'arrêter ? Est-ce qu'il faut un compteur ou pas ?
    - de quoi j'ai besoin quand je suis à l'intérieur d'une boucle ? Quelles variables, quand les utiliser (avant/pendant/après la boucle), etc.

    Si tu choisis une boucle for, le compteur est explicite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (var i = 0; i < ...; i++) {
      ...
    }
    Mais tu peux faire la même chose avec while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var i = 0;
    while (i < ...) {
      ...
      i++;
    }
    Ça fait exactement la même chose. En fait, la boucle while est plus facile à comprendre car tu vois bien à quels moments les choses se font. Une boucle for n'est rien de plus qu'un while amélioré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (initialisation; condition; continuation) { ... }
    - initialisation est exécutée une fois avant de commencer la boucle
    - condition est vérifiée avant chaque tour de boucle, et si elle est fausse, on sort de la boucle
    - continuation est exécutée après chaque tour de boucle.

    J'espère que c'est plus clair pour toi maintenant
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  4. #4
    Membre régulier Avatar de cubepiege
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    Merci beaucoup pour vos réponses.
    Je vais essayer d'avancer 'avec logique'

Discussions similaires

  1. [XL-2010] Boucle pour compteur
    Par gigalia dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 27/01/2014, 14h16
  2. [Batch] Boucle avec compteur
    Par fra7878 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 26/01/2011, 10h45
  3. Compteur dans une boucle for
    Par lohot dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 28/03/2008, 12h19
  4. boucle et compteur
    Par malabar92 dans le forum Access
    Réponses: 15
    Dernier message: 22/02/2007, 11h31
  5. Compteurs de boucles ?
    Par Mathusalem dans le forum MATLAB
    Réponses: 7
    Dernier message: 04/06/2006, 10h05

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