Mise a jour d'un texte ou variable

[Résolu/Fermé]
Signaler
Messages postés
6
Date d'inscription
mercredi 21 mars 2018
Statut
Membre
Dernière intervention
16 février 2019
-
Messages postés
6
Date d'inscription
mercredi 21 mars 2018
Statut
Membre
Dernière intervention
16 février 2019
-
Bonjours,
j'ai un problème au niveau d'une mise a jour d'une méthode.

Voici un exemple:

public class math
{
    
    public static void main(String[] args)
    {
        for(int i = 0 ; i<5 ;i++){
            somme(a());
        }
    }
    
    public static int a(){
        int compteurA=0;
        
        compteurA=compteurA+1;
        
        return compteurA;
    }
    
    public static void somme(int compteurA){
        int B;
        int somme;
        B=5;
        somme=0;
        
        somme=B+compteurA;
        System.out.println("somme = "+ somme);
    }
    
    
}


Parce qu’a la fin je n'ai que des somme=6.
Je voudrais savoir comment régler ce problème sans passer par des variable globale ou des return.

Merci pour l'aide

2 réponses

Messages postés
16400
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
21 septembre 2021
2 879
Bonjour,

À chaque fois tu réinitialises compteurA à 0 dans a() et tu réinitialise à 0 ta somme dans b(), donc a() renvoie toujours 1 et somme renvoie toujours 6, c'est normal...

Dans tous les cas si tu veux faire une somme il te faut deux valeurs : a et b pour calculer a + b, pour l'instant tu n'as que a (et b vaut toujours 5) donc ça ne peut pas s'accumuler.

Et si tu veux modifier un paramètre (ce qui est en général une mauvaise idée) il faut que ce soit un objet.

Exemple :

class Nombre {
    int valeur;
}

public class Math {

    public static void main(String[] args) {
        Nombre result = new Nombre();
        for (int i = 0; i < 5; i++) {
            somme(result, 1); // result += 1
            System.out.println("somme = " + result.valeur);
        }
    }

    public static void somme(Nombre resultB, int valeurA) {
        resultB.valeur += valeurA;
    }
}
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
6
Date d'inscription
mercredi 21 mars 2018
Statut
Membre
Dernière intervention
16 février 2019

merci beaucoup