En fait si
se trouve avant la déclaration
Code :
- boolean [] t = new boolean[n] ;
|
ca marche , sinon erreur de compilation , c'est la que j'ai du mal je croyais que l'ordre n'avait pas d influence . sinon mon code complet ( c'est mon premier code en java et mon niveau math est 2nde donc no critique )
Code :
- class NbPremiers {
- private int n ;
- private int temp ;
- private int i ;
- private int j ;
- private int k ;
- public NbPremiers(int recu) {
- n = recu ;
- }
- boolean [] t = new boolean[n] ;
- public void Calcul() {
- for (i = 2; i < t.length; i++) {
- t[i] = true;
- }
- toj : for (j = 2; j < t.length; j++) {
- if (t[j] == false) {
- continue toj;
- }
- else {
- for (temp = j + j; temp < t.length; temp += j) {
- t[temp] = false;
- }
- }
- }
- }
- public void Affiche () {
- for (k=1 ; k < t.length ; k++) {
- if ( t[k] == true ) {
- System.out.println(k);
- }
- }
- }
- }
- }
- public class Cherche {
- public static void main (String[] args) {
- System.out.println("Donnez un entier :" );
- int recu = Clavier.lireInt();
- NbPremiers test = new NbPremiers(recu);
- test.Calcul();
- test.Affiche();
- }
- }
|
par contre t.length vaut 0 si je lui met en parametre n ( new boolean[n] ) alors que si je fais un System.out.println(n) ;
il m'affiche bien la valeur recue en argument et le code marche si je met directement un int dans la déclaration ( ex : new boolean [9999] ; )
Message édité par KristaaL le 01-12-2004 à 22:26:35