Java if tableau

Fermé
mousekey - 26 févr. 2005 à 19:43
 mousekey - 14 mars 2005 à 16:10
Bonjour,
je sais qu'en c++ je pex faire cette commande.. if ( tab[i] == 0)... Cependant, en java, le compilateur mentionne que j'ai une erreur quand je fais if ( elemsFile[i] == 0)... elle est ou mon erreur...


boolean AjoutProcessus(int int_Nouvel_Element)
{


for ( int i =0 ; i < int_NbElement_Tableau ; ++i)
{
if ( elemsFile[i] == 0)
{

elemsFile[i] = int_Nouvel_Element ;
return true ;
}

}

return false ;

}

merci de m'aider...

mousekey
A voir également:

6 réponses

Comar91 Messages postés 4 Date d'inscription vendredi 21 janvier 2005 Statut Membre Dernière intervention 20 décembre 2007
26 févr. 2005 à 20:29
Bonsoir,
Est-ce que elemsFile[] est bien défini ?
0
Voici le code source de la classe et le code du fichier test...

filePret


import java.io.*;
import java.lang.String;

class filePret
{
int int_NbElement_Tableau = 0 ;
int[] elemsFile ;

filePret()
{
int_NbElement_Tableau = 0 ;
}

filePret(int int_Nb_Element)
{
int[] elemsFile = new int[int_Nb_Element];

int_NbElement_Tableau = int_Nb_Element ;

for ( int i = 0 ; i < int_Nb_Element ; ++i)
{
elemsFile[i] = 0 ;
}
}

void SortirProcessus()
{
/* int int_Max = 0 ;
int int_Index_Elem_Max = 0 ;
for(int i = 0 ; i < int_NbElement_Tableau ; ++i)
{
if ( int_Max < elemsFile[i] )
{
int_Index_Elem_Max = i ;
}

}
elemsFile[int_Index_Elem_Max] = 0 ;
*/

}
boolean AjoutProcessus(int int_Nouvel_Element)
{


for ( int i =0 ; i < elemsFile.length ; i++)
{

if ( elemsFile[i] == 0 )
{

elemsFile[i] = int_Nouvel_Element ;
return true ;
}

}

return false ;

}

boolean EstVide()
{
boolean bool_Case_Libre = false ;

for ( int i =0 ; i < int_NbElement_Tableau ; i++)
{
if ( elemsFile[i] != 0)
{
return false ;
}
}
return true ;
}

void AfficherElementTableau()
{
/* for ( int i = 0 ; i < int_NbElement_Tableau ; i++)
{
System.out.println("Élément du tableau case " + i + " est " + elemsFile[i]);
}*/
}

void Attendre(int int_temps)
{
for ( int i = 0 ; i < int_temps ; ++i) ;

}
}

et le code du test....
class TestFilePret
{
public static void main(String args[])
{
filePret file = new filePret(10);

file.AfficherElementTableau();

for ( int i =0 ; i < 10 ; ++i)
file.AjoutProcessus(i);

file.AfficherElementTableau();

for ( int i =0 ; i < 10 ; ++i)
file.SortirProcessus();

file.AfficherElementTableau();
}

}
merci

mousekey
0
import java.lang.String;

public class filePret
{
int int_NbElement_Tableau = 0 ;
int[] elemsFile ;

public filePret(){
int_NbElement_Tableau = 0 ;
}


public filePret(int int_Nb_Element){
elemsFile = new int[int_Nb_Element];

int_NbElement_Tableau = int_Nb_Element ;

for ( int i = 0 ; i < int_Nb_Element ; ++i)
elemsFile[i] = 0 ;

}


public void SortirProcessus() {
int int_Max = 0 ;
int int_Index_Elem_Max = 0 ;

for(int i = 0 ; i < int_NbElement_Tableau ; ++i) {
if ( int_Max < elemsFile[i] )
int_Index_Elem_Max = i ;
}
elemsFile[int_Index_Elem_Max] = 0 ;
}


public boolean AjoutProcessus(int int_Nouvel_Element){

for ( int i =0 ; i < elemsFile.length ; i++){
if ( elemsFile[i] == 0 ){
elemsFile[i] = int_Nouvel_Element ;
return true ;
}
}
return false ;
}


public boolean EstVide(){
boolean bool_Case_Libre = true ;

for ( int i =0 ; i < int_NbElement_Tableau ; i++){
if ( elemsFile[i] != 0)
bool_Case_Libre=false ;
}
return bool_Case_Libre ;
}


public void AfficherElementTableau(){

for ( int i = 0 ; i < int_NbElement_Tableau ; i++)
System.out.println("Élément du tableau case " + i + " est " + elemsFile[i]);
}


public void Attendre(int int_temps){
for ( int i = 0 ; i < int_temps ; i++) ;
}


public static void main(String args[]) {
filePret file = new filePret(10);

file.AfficherElementTableau();

for ( int i =0 ; i < 10 ; ++i)
file.AjoutProcessus(i);

file.AfficherElementTableau();

for ( int i =0 ; i < 10 ; ++i)
file.SortirProcessus();

file.AfficherElementTableau();
}

}






J'ai testé et j'ai obtenu çà :

Élément du tableau case 0 est 0

Élément du tableau case 1 est 0

Élément du tableau case 2 est 0

Élément du tableau case 3 est 0

Élément du tableau case 4 est 0

Élément du tableau case 5 est 0

Élément du tableau case 6 est 0

Élément du tableau case 7 est 0

Élément du tableau case 8 est 0

Élément du tableau case 9 est 0

Élément du tableau case 0 est 1

Élément du tableau case 1 est 2

Élément du tableau case 2 est 3

Élément du tableau case 3 est 4

Élément du tableau case 4 est 5

Élément du tableau case 5 est 6

Élément du tableau case 6 est 7

Élément du tableau case 7 est 8

Élément du tableau case 8 est 9

Élément du tableau case 9 est 0

Élément du tableau case 0 est 0

Élément du tableau case 1 est 0

Élément du tableau case 2 est 0

Élément du tableau case 3 est 0

Élément du tableau case 4 est 0

Élément du tableau case 5 est 0

Élément du tableau case 6 est 0

Élément du tableau case 7 est 0

Élément du tableau case 8 est 0

Élément du tableau case 9 est 0


Voilà, j'ai plus d'erreurs à la compil, à toi de me dire si çà te va ?
0
Bonjour,
merci pour votre réponse... Oui ca marche mais je ne sais pas pourqoui le programme ne fonctinnait pas sur ma machine... en tout cas merci...

mousekey
0
Bonjour,
quand je veux faire une comparaison à un tableau dans un if du genre elemsFile[i]!= 0 le compilateur ne mentionne aucune erreur... Cependant à l'exécution il me dit que j'ai une erreur à cette ligne... Pouvez-vous me donner un conseil car la je ne vois pas ou est mon erreur et si je prends le code que vous m'avez envoyé... ca me donne la meme chose...

merci
mousekey
0
Utilisateur anonyme
9 mars 2005 à 17:04
hello

une erreur comme celle-ci veut dire que le code est correct, mais la variable i ne l'est pas.

Vérifie que i n'est pas inférieur à 0, car les tableaux commencent bien sûr à 0 ;-)
elemsFile[-1] fait planter ton programme !
0
Bonjour,
quand j'accès à un tableau j'utilise toujours une boucle for de ce type

for ( int i = 0 ; i < int_NbElement_Tableau ; i++)
{
if ( elemsFile[i] != 0 )
{
bool_Case_Libre = false ;
}
}


merci

mousekey
0
Utilisateur anonyme
9 mars 2005 à 17:51
oui bin dans ce cas c'est que ta variable int_NbElement_Tableau contient le nombre d'éléments de ton tableau.

Or le premier élément d'un tableau est 0,

Donc l'indice du dernier est (int_NbElement_Tableau - 1) !

c'est toujhours chiant ce genre de truc n'est ce pas;-)))
0
Bonjour,
merci j'avais oblié le -1... mais pourqoui que l'exécuteur apres la compilateur j'ai un message d'erreur qui me mentionne que j'ai une erreur quand je veux faire ceci :

if ( elemsFile[i] == 0 ) ou if ( elemsFile[i] != 0 ) ou quand je veux faire System.out.println(+elemsFile[i]) avec une bonne boucle for bien argumenter...

merci

mousekey
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
14 mars 2005 à 14:27
salut,

essaie d'afficher dans ta boucle un message pour debugger.

->tu sauras si ca plante au tout début ou à la fin de ta boucle (peut-etre que i n'est tjs pas correct ?)

;-)
0
Bonjour,
merci j'ai résolu mon problème...

mousekey
0