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

avec Java Discussion :

Limiter le nombre de passages maximum dans un foreach


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Apprenti Master MIAGE
    Inscrit en
    Janvier 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Apprenti Master MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 17
    Points : 16
    Points
    16
    Par défaut Limiter le nombre de passages maximum dans un foreach
    Bonjour à tous,

    Je réalise en ce moment un programme pour mon stage de BTS.

    Je souhaite afficher des chaînes de caractères contenues dans une collection.

    Je parcours donc une collection de "Traitement". Chaque objet Traitement contient une collection de "Paramètre" (de type String).

    Cette collection de "Paramètre" peut être vide. Si c'est le cas, je veux afficher 10 fois "Paramètre : null".

    Sinon, je veux afficher au maximum 10 fois "Paramètre : String de ma collection". C'est celà qui me pose problème. En effet, je ne trouve pas de moyen pour limiter le nombre de passages à 10 si ma collection contient plus d'éléments que prévu.

    Voici la partie de mon code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    for(Traitement t : a.getLesTraitements()) {
    	lefichier.println(t.toString());
    	nbParam = 0;
    	for (String s : t.getLesParametres()) {
    		lefichier.println("Paramètre : " + s);
    		nbParam += 1;
    	}
    	while (nbParam < 10) {
    		lefichier.println("Paramètre : ");
    		nbParam++;
    	}
    }
    Je ne pense pas que mon code soit vraiment optimiser mais c'est le seul moyen que j'ai trouvé pour me rapprocher du résultat attendu.

    J'espère que mon message est clair, merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    A mon avis j'ai pas du comprendre mais pourquoi n'utilises tu pas un break tout simplement dans la boucle for ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (nbParam >= 10) break;

  3. #3
    Membre à l'essai
    Homme Profil pro
    Apprenti Master MIAGE
    Inscrit en
    Janvier 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Apprenti Master MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Merci beaucoup, j'obtiens le résultat attendu.
    J'ai mis le break dans mon for et ça bloque bien à plus de 10 tours.

    Par contre, le fait d'utiliser break dans ma boucle n'est-il pas considéré comme du "code fait à l'arrache" ? Une de mes profs de programmation fait la guerre aux break alors je ne sais pas trop quoi en penser

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Citation Envoyé par Keyzounet Voir le message
    Par contre, le fait d'utiliser break dans ma boucle n'est-il pas considéré comme du "code fait à l'arrache" ?
    Pas plus que cette fixation de faire exactement 10 trucs, même quand on a plus ou moins de 10 machins pour ça.

    Mais si vraiment tu n'aimes pas le break ou le return, tu peux remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Iterator<Traitement> itr = a.getLesTraitements().iterator();
    while(itr.hasNext() && nbParams < 10) {

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Une de mes profs de programmation fait la guerre aux break alors je ne sais pas trop quoi en penser
    Bah qu'elle nous donne une astuce sans break pour la boucle foreach on verra après

  6. #6
    Membre à l'essai
    Homme Profil pro
    Apprenti Master MIAGE
    Inscrit en
    Janvier 2013
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Apprenti Master MIAGE

    Informations forums :
    Inscription : Janvier 2013
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Bah qu'elle nous donne une astuce sans break pour la boucle foreach on verra après
    Pas faux, je pourrai me justifier en lui disant ça au pire .

    Merci à vous deux pour vos réponses rapides et claires !

  7. #7
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 084
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 084
    Points : 7 995
    Points
    7 995
    Par défaut
    Citation Envoyé par Keyzounet Voir le message
    Pas faux, je pourrai me justifier en lui disant ça au pire .

    Merci à vous deux pour vos réponses rapides et claires !
    Te "justifier" j'en sais rien mais tu pourras au moins lui poser la question par curiosité.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/10/2007, 14h58
  2. Réponses: 2
    Dernier message: 08/09/2007, 11h58
  3. Réponses: 4
    Dernier message: 10/05/2007, 07h30
  4. Réponses: 7
    Dernier message: 13/01/2007, 16h53
  5. Nombre de feuilles maximum dans Excel ?
    Par Le Djé dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/10/2005, 21h30

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