Java if tableau

mousekey -  
 mousekey -
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 Statut Membre
 
Bonsoir,
Est-ce que elemsFile[] est bien défini ?
0
mousekey
 
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
Damien
 
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
mousekey
 
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
mousekey
 
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
 
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
mousekey
 
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
 
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
mousekey
 
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
 
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
mousekey
 
Bonjour,
merci j'ai résolu mon problème...

mousekey
0