A voir également:
- Problemes d'imbrication en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Waptrick java voiture - Télécharger - Jeux vidéo
- Java décompiler - Télécharger - Langages
10 réponses
maily
Messages postés
7556
Date d'inscription
lundi 26 juin 2000
Statut
Contributeur
Dernière intervention
23 juin 2023
453
10 mai 2004 à 12:18
10 mai 2004 à 12:18
Bonjour,
pourrais tu mettre ton code en entier, cela serait plus simple pour mieux comprendre ton problème!!
Maily :-)))) L'hirondelle ne fait pas le printemps
mais le dromadaire fait le désert.
pourrais tu mettre ton code en entier, cela serait plus simple pour mieux comprendre ton problème!!
Maily :-)))) L'hirondelle ne fait pas le printemps
mais le dromadaire fait le désert.
Mon programme est le suivant, merci d'avance:
public class Terfixe2
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public void main(String[] args)
{
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;//mis(m)
ms=-ms;
tab[1][m] = ml;//mil(m)
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}//Indx(mElec)
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];//Indx(mElec)
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
public class Terfixe2
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public void main(String[] args)
{
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;//mis(m)
ms=-ms;
tab[1][m] = ml;//mil(m)
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}//Indx(mElec)
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];//Indx(mElec)
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
Yop,
ben il te manque plein de déclaration :
Lsup, maxElec, maxSpinO, nbLmax, nbSmax. Tu t'en sers dans le main mais tu ne les as pas déclarées au-dessus. Donc forcément ca plante. De plus il faut que tu déclares la méthode main comme suit :
public static void main(String [] args) {}
Je te conseille alors de faire ce que fait ton main dans le constructeur. Tu auras moins de pb.
++
Nico
ben il te manque plein de déclaration :
Lsup, maxElec, maxSpinO, nbLmax, nbSmax. Tu t'en sers dans le main mais tu ne les as pas déclarées au-dessus. Donc forcément ca plante. De plus il faut que tu déclares la méthode main comme suit :
public static void main(String [] args) {}
Je te conseille alors de faire ce que fait ton main dans le constructeur. Tu auras moins de pb.
++
Nico
En fait je me suis trompé dans le programme que j'ai envoyé sur le net mais meme en mettant public <static> void main... il ne comprend pas qu'il doit utiliser les variables du debut pour tout le programme (main+toto):
public class Terfixe3
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public static void main(String[] args)
{
int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
public class Terfixe3
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public static void main(String[] args)
{
int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
Tu ne m'as pas écouté, donc voila la correction de ton programme :
public class Terfixe3
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public Terfixe3() {
int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public static void main(String[] args)
{
Terfixe3 t = new Terfixe3();
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
++
Nico
public class Terfixe3
{
int scouche=1;
int nElec=4;
int ms=-1;
int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int m;
int tab[][]=new int[3][1+nSpinO];
int mElec;
int kElec;
int MS;
int ML;
public Terfixe3() {
int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
}
System.out.println ("mis(m) = " + tab[0][m-1]);
System.out.println ("mil(m) = " + tab[1][m-1]);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
int MLmax=0;
int MSmax=0;
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
}
System.out.println ("Indx(mElec) = " + tab[2][mElec-1]);
toto();
tab[2][m-1]=1+tab[2][m-1];
System.out.println ("Indx(mElec) = " + tab[2][m-1]);
for (kElec=mElec+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];
}
if ((tab[2][m-1])>(nSpinO+mElec-nElec))
{mElec=mElec-1;
if (mElec<=0)
{System.out.println ("c gagne " + mElec);
}
}
}
public static void main(String[] args)
{
Terfixe3 t = new Terfixe3();
}
public void toto()
{
int mElec=nElec;
System.out.println ("mElec = " + mElec);
for (kElec=1 ; kElec<=nElec; kElec++)
{MS=MS+tab[0][kElec];
ML=ML+tab[1][kElec];
}
System.out.println ("MS = " + MS);
System.out.println ("ML = " + ML);
for (m=1 ; m<=nElec; m++)
{System.out.println ("Indx("+m+") = " + tab[2][m]);
}
}
}
++
Nico
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ton problème vient du fait que tu fais tout dans le main. La méthode main est une méthode statique. Or une méthode statique ne contient que des variables statiques. C'est pourquoi il faut que tu fasses appel au constructeur de la classe et c'est dans ce constructeur que tu vas initialiser tes variables de la classe. L'exemple que je te donne est un mauvais exemple de programmation objet car je fais tout dans le constructeur. Normalement le constructeur n'est la que pour initialiser les variables de ta classe. Mais ca marche comme ca.
++
Nico
++
Nico
de nada :)
Nico
Nico
Salut,
En effet, j'ai un nouveau problème que je n'arrive pas a résoudre concernant la méthode qu'on m'avait envoyée.
J'ai essayé plusieures choses mais sans succès.
Mon programme est le suivant:
public class Spectre
{ int scouche=1;int nElec=4;
int ms=-1;int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int tab[][]=new int[3][1+nSpinO];
int mElec;int kElec;int MS;int ML;int L;int m;int nTS;int y; int x;
int MLmax=0;int MSmax=0;
public Spectre()
{int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
System.out.println ("mis("+m+") = " + tab[0][m]);
System.out.println ("mil("+m+") = " + tab[1][m]);
System.out.println ("");
}
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
System.out.println ("Indx("+mElec+") = " + tab[2][mElec]);
}
retour10();
}
public static void main(String [] args)
{Spectre t=new Spectre();
}
public void retour10()
{System.out.println ("on est ds la partie 10");
mElec=nElec;
ML=0;
MS=0;
for (kElec=1 ; kElec<=nElec; kElec++)
{x=tab[2][kElec];
MS=MS+tab[0][x];
ML=ML+tab[1][x];
System.out.println ("ML("+kElec+") = " + ML);
System.out.println ("MS("+kElec+") = " + MS);
System.out.println ("");
}
if (ML<=MLmax)
{MLmax=MLmax;
}
else{MLmax=ML;
}
if (MS<=MSmax)
{MSmax=MSmax;
}
else{MSmax=MS;
}
System.out.println ("MLmax = " + MLmax);
System.out.println ("MSmax = " + MSmax);
for (m=1 ; m<=nElec; m++)
{y=m;
System.out.println ("Indx("+m+") = " + tab[2][m]);
}
float s=MS;
s=s/2;
System.out.println ("ML = " + ML + " MS = " + s);
retour20();
}
public void retour20()
{System.out.println ("on est dans la partie 20");
tab[2][y]=1+tab[2][y];//Indx(mElec)
System.out.println ("Indx("+y+") = " + tab[2][y]);
for (kElec=y+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];//Indx(kElec)
}
retour30();
}
public void retour30()
{System.out.println ("on est ds la partie 30");
if ((tab[2][y])>(nSpinO+y-nElec))
{y=y-1;
if (y<=0)
{retour100();
}
else{retour20();
}
}
retour10();
}
public void retour100()
{System.out.println ("on est ds la partie 100");
System.out.println("nTS");
retour110();
}
public void retour110()
{System.out.println ("on est ds la partie 110");
for (ml=-MLmax ; ml<=MLmax ; ml++)
{System.out.println ("ml = " + ml);
}
retour120();
}
public void retour120()
{System.out.println ("on est ds la partie 120");
ms=MSmax;
L=-1;
for (ml=0 ; ml<=MLmax ; ml++)
{L=ml;
}
if (L==-1)
{MSmax=MSmax-2;
if (MSmax<0)
{retour200();
}
retour120();
}
System.out.println ("MSmax = " + MSmax);
nTS=nTS-1;
if (nTS==0)
{retour200();
}
}
public void retour200()
{System.out.println ("fin du programme");
}
}
Mon programme s'effectue bien au début mais le problème est que dans "public void retour30()", apres avoir fait "retour100()", le programme effectue de nouveau "retour10()".
J'ai essayé de l'en empêcher avec un "break", mais je n'ai pas réussi.
Si vous pouviez m'aider encore, ce serait sympa.
D'avance merci
Jean Marc
En effet, j'ai un nouveau problème que je n'arrive pas a résoudre concernant la méthode qu'on m'avait envoyée.
J'ai essayé plusieures choses mais sans succès.
Mon programme est le suivant:
public class Spectre
{ int scouche=1;int nElec=4;
int ms=-1;int ml=-scouche;
int nSpinO=2*(2*scouche+1);
int tab[][]=new int[3][1+nSpinO];
int mElec;int kElec;int MS;int ML;int L;int m;int nTS;int y; int x;
int MLmax=0;int MSmax=0;
public Spectre()
{int Lsup=6;
int maxElec=2*(2*Lsup+1);
int maxSpinO=maxElec;
int nbLmax=Lsup*(Lsup+1);
int nbSmax=2*Lsup+1;
System.out.println ("Lsup = " + Lsup);
System.out.println ("maxElec = " + maxElec);
System.out.println ("maxSpinO = " + maxSpinO);
System.out.println ("nbLmax = " + nbLmax);
System.out.println ("nbSmax = " + nbSmax);
System.out.println ("scouche = " + scouche);
System.out.println ("nElec = " + nElec);
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
System.out.println ("nSpinO = " + nSpinO);
for (m=1 ; m<=nSpinO; m++)
{tab[0][m] = ms ;
ms=-ms;
tab[1][m] = ml;
if ((m/2)*2==m)
{ml=ml+1;
}
System.out.println ("mis("+m+") = " + tab[0][m]);
System.out.println ("mil("+m+") = " + tab[1][m]);
System.out.println ("");
}
System.out.println ("ms = " + ms);
System.out.println ("ml = " + ml);
for (mElec=1 ; mElec<=nElec; mElec++)
{tab[2][mElec] = mElec ;
System.out.println ("Indx("+mElec+") = " + tab[2][mElec]);
}
retour10();
}
public static void main(String [] args)
{Spectre t=new Spectre();
}
public void retour10()
{System.out.println ("on est ds la partie 10");
mElec=nElec;
ML=0;
MS=0;
for (kElec=1 ; kElec<=nElec; kElec++)
{x=tab[2][kElec];
MS=MS+tab[0][x];
ML=ML+tab[1][x];
System.out.println ("ML("+kElec+") = " + ML);
System.out.println ("MS("+kElec+") = " + MS);
System.out.println ("");
}
if (ML<=MLmax)
{MLmax=MLmax;
}
else{MLmax=ML;
}
if (MS<=MSmax)
{MSmax=MSmax;
}
else{MSmax=MS;
}
System.out.println ("MLmax = " + MLmax);
System.out.println ("MSmax = " + MSmax);
for (m=1 ; m<=nElec; m++)
{y=m;
System.out.println ("Indx("+m+") = " + tab[2][m]);
}
float s=MS;
s=s/2;
System.out.println ("ML = " + ML + " MS = " + s);
retour20();
}
public void retour20()
{System.out.println ("on est dans la partie 20");
tab[2][y]=1+tab[2][y];//Indx(mElec)
System.out.println ("Indx("+y+") = " + tab[2][y]);
for (kElec=y+1 ; kElec<=nElec; kElec++)
{tab[2][kElec]=1+tab[2][kElec-1];//Indx(kElec)
}
retour30();
}
public void retour30()
{System.out.println ("on est ds la partie 30");
if ((tab[2][y])>(nSpinO+y-nElec))
{y=y-1;
if (y<=0)
{retour100();
}
else{retour20();
}
}
retour10();
}
public void retour100()
{System.out.println ("on est ds la partie 100");
System.out.println("nTS");
retour110();
}
public void retour110()
{System.out.println ("on est ds la partie 110");
for (ml=-MLmax ; ml<=MLmax ; ml++)
{System.out.println ("ml = " + ml);
}
retour120();
}
public void retour120()
{System.out.println ("on est ds la partie 120");
ms=MSmax;
L=-1;
for (ml=0 ; ml<=MLmax ; ml++)
{L=ml;
}
if (L==-1)
{MSmax=MSmax-2;
if (MSmax<0)
{retour200();
}
retour120();
}
System.out.println ("MSmax = " + MSmax);
nTS=nTS-1;
if (nTS==0)
{retour200();
}
}
public void retour200()
{System.out.println ("fin du programme");
}
}
Mon programme s'effectue bien au début mais le problème est que dans "public void retour30()", apres avoir fait "retour100()", le programme effectue de nouveau "retour10()".
J'ai essayé de l'en empêcher avec un "break", mais je n'ai pas réussi.
Si vous pouviez m'aider encore, ce serait sympa.
D'avance merci
Jean Marc
Salut,
Je crois pas avoir oublié un "s" à la première ligne sur "Spectre", non?
Merci quand même d'avoir répondu
Jean Marc
Je crois pas avoir oublié un "s" à la première ligne sur "Spectre", non?
Merci quand même d'avoir répondu
Jean Marc
Yop,
si tu veux qu'une fois le retour100 a été fait qu'il sorte de la méthode retour30 il faut utiliser return pour sortir de la méthode.
Tu peux répéter cette opération pour les autres cas de ta méthode si c'est le meme cas.
public void retour30()
{System.out.println ("on est ds la partie 30");
if ((tab[2][y])>(nSpinO+y-nElec))
{y=y-1;
if (y<=0)
{retour100();
return;
}
else{retour20();
}
}
retour10();
}
Nico
si tu veux qu'une fois le retour100 a été fait qu'il sorte de la méthode retour30 il faut utiliser return pour sortir de la méthode.
Tu peux répéter cette opération pour les autres cas de ta méthode si c'est le meme cas.
public void retour30()
{System.out.println ("on est ds la partie 30");
if ((tab[2][y])>(nSpinO+y-nElec))
{y=y-1;
if (y<=0)
{retour100();
return;
}
else{retour20();
}
}
retour10();
}
Nico