Depuis quelques mois, j'ai basculé vers la programmation dans un langage fonctionnel (Racket), et j'ai récemment redémarré le codage en Java, donc je suis un peu confus sur quelques concepts.Stockage du résultat d'une méthode dans une variable
Le code suivant (version simplifiée) est une implémentation de l'algorithme d'euclid. Cela fonctionne très bien. Mon problème avec c'est la déclaration de retour. Est-il possible en Java de stocker les résultats d'une méthode dans une variable? Par exemple, dans mon code, j'ai initialisé le résultat de la variable pour stocker le gcd de deux nombres. Mais cela renvoie une valeur incorrecte. Cependant, si je supprime le résultat de la variable, j'obtiens la valeur correcte pour le gcd, ce qui m'amène à ma deuxième question: les déclarations de retour. Je ne comprends pas très bien ce que la déclaration de retour est en train de faire ici. La seule raison pour laquelle je l'ai en 1ère place était parce que je visais à stocker le résultat de la méthode Recursion dans une variable. Mais pour autant que je l'ai essayé, et semble ne faire que gâcher mon code.
Objectif principal: stocker le résultat de la commande gcd de deux nombres dans une variable, afin de pouvoir la réutiliser ailleurs.
Y a-t-il un moyen de rendre cela possible? Toutes les suggestions seraient appréciées!
import java.util.*;
public class StoringResults
{
public static void main(String[]args)
{
int big,small,remainder,gcd; //Variables declared.
Scanner sc=new Scanner(System.in);
/* Use enters input */
//Big is the larger number.
//Small is the smaller of the two.
remainder=big%small;
int result=recursion(big,small,remainder);
System.out.println("FINAL RESULT:"+result);
}
//recursive method.
public static int recursion(int big,int small,int remainder)
{
remainder=big%small;
if(remainder==0)
{
System.out.println(small);
}
else
{
int dummyvar=remainder;
big=small;
small=dummyvar;
recursion(big,small,remainder);
}
return remainder;
}
}
Vous initialisées les variables, mais jamais définir leurs valeurs (ou vous couper cette partie du code pour une bonne raison) ... – XenoRo
Voilà quelques questions de base qui sont facilement résolues en lisant un livre java basique. Et enlever le reste de la signature de la méthode, il n'a pas d'utilité. Et votre logique d'algorithme est simplement défectueuse si vous mettez en 6 et 3 par exemple. – luk2302