Bonjour
J'écrivais une fonction qui utilise des BigInteger en argument
donc de la forme
apres dans le main si je fais un System.out.println("a = "+a+" b="+b); avant et apres l'éxecution de la fonction (et en ayant initialisé a et b préalablement bien sur) et bien on a la même chose ce qui signifierait que les BigInteger sont passés par valeur (comme des int normaux). Etrange non? Est-ce voulu pour que la manipulation de BigInteger se fasse comme celle des int? Au passage je me suis éja fait avoir par:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public void fonctionInutile(BigInteger a, BigInteger b){ a = a.add(BigInteger.ONE); b = a; }
qui est une boucle infinie. Il faut penser à réattribuer i par i = i.add(BigInteger.ONE) ce qui ne me semble pas spécialement logique syntaxiquement (je pensais que la méthode add modifierai l'instance de i). Tout se passe donc comme si on manipulait des int.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for(BigInteger i = BigInteger.ZERO;(condition d'arret);i.add(BigInteger.ONE)){ ... }
Partager