Java et récursivité ???

Résolu
Enderounet Messages postés 29 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 30 août 2005 - 3 août 2005 à 09:27
Enderounet Messages postés 29 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 30 août 2005 - 5 août 2005 à 13:51
J'ai cette méthode dans ma classe qui est un peu barbare :

protected static double CalculB(int J, int S, double B, double DB, double BZ){
double RC, DZ, RX, sO, fO, nO, iO, eO, sC, fC, nC, iC, eC, nu, de;
RX = OrCd/CuivreCd;
sO = 15.622;
fO = 0.21;
nO = 0.0030576;
iO = 1490;
eO = 4.906;
sC = 0.7115;
fC = 0.45;
nC = 0.006549;
iC = 2.79;
eC = 577;
nu = nO * fO * (sO * ((StrictMath.pow(50000, B-1/2)-StrictMath.pow(0.5, B-1/2))/(B-1/2)) + iO * StrictMath.pow(eO, B));
de = nC * fC * (sC * ((StrictMath.pow(50000, B-1/2)-StrictMath.pow(0.5, B-1/2))/(B-1/2)) + iC * StrictMath.pow(eC, B));
RC = nu / de;
DZ = RC - RX;
if (DZ < 0) S = -1;
Min = StrictMath.abs(DZ) / RX; if (B 0) BZ Min;
if (Min < DB)
{
DB = DB / 10;
J = J - 1;
if (J <= 0) return B;
else
{
BZ = Min;
B = B + S * DB;
return CalculB(J, S, B, DB, BZ);
}
}
else
{
if (BZ < Min)
{
B = B - S * DB;
return B;
}
else
{
BZ = Min;
B = B + S * DB;
return CalculB(J, S, B, DB, BZ);
}
}
}

Elle est censée représenter un algo de calcul, mais au test j'ai ce message d'erreur:

Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at criticité.Données.CalculB(Données.java:57)
at criticité.Données.CalculB(Données.java:81)

Problème de mémoire? de récursivité? ...
Cet algo est a la base ecrit en BASIC et ca passe bien ( test avec des valeurs calculées, et je tombe pas en boucle infinie ).
Help merci

24 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
5 août 2005 à 11:17
donne des valeurs pour les variables :
cv, cr, cd, au, in, ni, mg

et traduit moi 100000!
deja sur l init des variables tu ne fait pas tout a fai la meme chose dc tu ne t es pas contenté d une traduction simple

GodConan
0
Enderounet Messages postés 29 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 30 août 2005
5 août 2005 à 12:30
pas compris l histoire de la pile, en fait ce petit bout de code etait un gosub a la base.

merci pour la boucle while, j avoue ne pas avoir vu les choses dans ce sens. je teste ca cet apres midi et
vous tiens au courant.

merci bcp pour le coup de main ;)
0
Enderounet Messages postés 29 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 30 août 2005
5 août 2005 à 13:51
heu comment dire .... MERCI !!!!
je sait pas d ou ca venait mais ca marche nickel la :)
surement mes appels ou mes reintroductions .

bien joué ;)
et encore merci
0
Enderounet Messages postés 29 Date d'inscription mardi 2 août 2005 Statut Membre Dernière intervention 30 août 2005
5 août 2005 à 13:51
heu comment dire .... MERCI !!!!
je sait pas d ou ca venait mais ca marche nickel la :)
surement mes appels ou mes reintroductions .

bien joué ;)
et encore merci
0
Rejoignez-nous