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 :

Quelques petits soucis avec ma boucle For


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut Quelques petits soucis avec ma boucle For
    Je crois que je me rappelle plus du principe de la boucle for...
    Un bout de code sera plus explicite.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private String getSequenceEntree() {
    		int e;
     
    		for (e = 1; e <= 100; e++) {
    			DecimalFormat df = new DecimalFormat("00000");
    			System.out.println(df.format(e));
    			this.SequenceEntree += df.format(e);//mon SequenceEntree est un String
    		}
    		return this.SequenceEntree;
    	}


    Mon but serait de récupérer séparément chaque valeur de e afin que mon SequenceEntree
    réagisse comme un compteur chaque fois qu'on l'appelle avec le get...

    Mais je sais plus comment faire ^^

    Merci pour toutes propositions.

  2. #2
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Bonjour,

    Ce serait plutôt quelquechose comme ça je pense :
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    public class VotreClasse {
    	//Attributs
    	...
    	//Attribut de comptage
    	private int e;
    	...
    	//Constructeurs
    	//Constructeur par défaut
    	public VotreClasse() {
    		...
    		e = 1;
    		...
    	}
    	...
    	//Méthodes
    	...
    	//Méthode getSequenceEntree()
    	private String getSequenceEntree() {
    		DecimalFormat df = new DecimalFormat("00000");
    		System.out.println(df.format(e));
    		this.SequenceEntree += df.format(e);//mon SequenceEntree est un String
    		e++;
    		return this.SequenceEntree;
    	}
    	...
    	//Methode d'appel de getSequenceEntree
    	public void methode() {
    		...
    		while (this.e <= 100) {
    			...
    			System.out.println(this.getSequenceEntree());
    			...
    		}
    		...
    	}
    	...
    }

  3. #3
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    On peut également faire avec une boucle for :
    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    public class VotreClasse {
    	//Attributs
    	...
    	//Attribut de comptage
    	private int e;
    	...
    	//Constructeurs
    	//Constructeur par défaut
    	public VotreClasse() {
    		...
    		e = 1;
    		...
    	}
    	...
    	//Méthodes
    	...
    	//Méthode getSequenceEntree()
    	private String getSequenceEntree() {
    		DecimalFormat df = new DecimalFormat("00000");
    		System.out.println(df.format(e));
    		this.SequenceEntree += df.format(e);//mon SequenceEntree est un String
    		e++;
    		return this.SequenceEntree;
    	}
    	...
    	//Methode d'appel de getSequenceEntree
    	public void methode() {
    		...
    		for (;this.e <= 100;) {
    			...
    			System.out.println(this.getSequenceEntree());
    			...
    		}
    		...
    	}
    	...
    }

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut
    Merci je regarde ça ce soir, et je te remercierais surement demain ^^

    Merci pour ta réponse

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut
    et en considérant que je me sois trompé et que ma méthode
    getSequenceEntree doive être public,
    ça changerait qqch ?

    Ne serait-il pas possible d'intégrer la boucle for à cette méthode ?

  6. #6
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Si vous mettez votre boucle for dans votre méthode, à chaque appel de la méthode, il comptera de 0 à 100 (il repartira de 0 à chaque appel)

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut
    OK mais comment récupérer la valeur qui doit être différente à chaque appel...
    Je séche un peu là.

    Parce que vu que la dernière méthode que vous avez proposé ne renvoi rien,
    je ne vois pas...

    Elle fait un systeme.out.println,
    le problème c'est que dans ma main,
    j'ai deja un system.out.println
    et que si j'associe ma méthode "méthode" a mon objet
    dans le sys.out.println, il le refuse...

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Points : 313
    Points
    313
    Par défaut
    Je complète mon code :

    Code : 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    public class VotreClasse {
    	//Attributs
    	...
    	//Attribut de comptage
    	private int e;
    	...
    	//Constructeurs
    	//Constructeur par défaut
    	public VotreClasse() {
    		...
    		e = 1;
    		...
    	}
    	...
    	//Méthodes
    	...
    	//Méthode getSequenceEntree()
    	private String getSequenceEntree() {
    		DecimalFormat df = new DecimalFormat("00000");
    		System.out.println(df.format(e));
    		this.SequenceEntree += df.format(e);//mon SequenceEntree est un String
    		e++;
    		return this.SequenceEntree;
    	}
    	...
    	public int getE() {
    		return e;
    	}
    	...
    	//Methode d'appel de getSequenceEntree
    	public void methode() {
    		...
    		for (;this.e <= 100;) {
    			...
    			System.out.println(this.getSequenceEntree());
    			System.out.println(this.getE());
    			...
    		}
    		...
    	}
    	...
    }

  9. #9
    Membre régulier
    Homme Profil pro
    IT in outer space
    Inscrit en
    Novembre 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : IT in outer space

    Informations forums :
    Inscription : Novembre 2006
    Messages : 88
    Points : 96
    Points
    96
    Par défaut
    Si je ne me trompe pas public signifie qu'on peut utiliser la méthode en dehors de la classe (depuis l'extérieur). private serait une méthode utilisable dans le scope (visibilité) de la classe.
    Je crois qu'il y a des différences significatives mais je pensais au mot clé static en lisant ce topic. Quoi qu'il en soit, je ne pense pas comprendre le but que vous cherchez mais j'ai eu l'impression que vous vouliez conserver la valeur de votre variable et l'incrémenter x fois jusqu'à 100 à chaque passage.

    Dans ce cas, si static se comporte comme je l'imagine (à vérifier) il aurait fallu mettre dans le corps de la méthode.

    Sans boucle for et déclarer e :

    Je ne fais que proposer des idées. Vérifiez mes dires si ça vous intéresse et faites savoir si c'est ou pas ce que vous recherchez.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2009
    Messages : 75
    Points : 31
    Points
    31
    Par défaut
    Au fait, je vais être plus précis.
    Je vais créer une interface graphique utilisateur
    d'ou je ferais des getText pour récupérer ce qu'il y aura rentré.

    Quand il validera les données qu'il a insérées sur la page,
    il faudrait que ces données s'enregistre de façon brute dans un fichier texte.

    Mais au milieu de ces donées j'aimerais y insérer un compteur.
    Lors de sa toute première validation (au client) cette méthode m'insérera automatiquement "00001" puis lors de sa deuxième utilisation "00002"
    En sachant qu'il n'en fera jamais + d'une dizaine, j'ai mis le chiffre 100 au cas ou. Je vois large.

    Mais voilà, je ne sais pas si c'est mieux de créer le compteur comme je vous ai demandé, et comme je bataille pour le faire OU de créer une ArrayListe
    puis d'y insérer les valeurs au fur et à mesure, puis de comparer les valeurs
    afin de créer la valeur suivante dans le genre :

    private ArrayList<String> maList = new ArrayList<String>();
    en y ajoutant "00001", "00002", "00003" ... à chaque nouvelle création

  11. #11
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    grosso merdo, ceci ferait l'affaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class MonGui extends CeQueTuVeux {
        private DecimalFormat indexFormat = new DecimalFormat("00000");
       private int index = 1;
     
       //plus loin dans ta méthode "ajouter une ligne dans le fichier"
       String indexTexte = df.format(index++);
       String ligne = debut+indexTexte+fin;
       // ajouter ligne au fichier
    }

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

Discussions similaires

  1. [CS5] Petite soucis dans ma boucle for
    Par cazius dans le forum Flash
    Réponses: 0
    Dernier message: 22/06/2013, 22h10
  2. [PHP 5.2] [PHP-JS] petit souci avec une boucle simple
    Par gtraxx dans le forum Langage
    Réponses: 2
    Dernier message: 05/02/2009, 15h26
  3. [VBA-E]Petit souci avec une boucle
    Par Mou dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 17/04/2007, 15h15
  4. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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