Probleme boucle for [Résolu]

Signaler
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
-
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
-
Salut, voici l’accusé :




<tt>

function recherche() {
var max_distance_droite=parseInt(perso.style.left)+60;
var max_distance_gauche=parseInt(perso.style.left)-60;
var max_distance_haut=parseInt(perso.style.top)-60;
var max_distance_bas=parseInt(perso.style.top)+60;

for (i=0; i<=lapersonne.length; i++)
{
if (map_position==lapersonne[i]["position_map"] && max_distance_droite>=lapersonne[i]["positionl"] &&  max_distance_gauche<=lapersonne[i]["positionl"] &&  max_distance_bas>=lapersonne[i]["positionh"] && max_distance_haut<=lapersonne[i]["positionh"])
{
distance="true";
alert("test 1");
}
else { var distance="false"; alert("test 2");}
alert("test 3");
}
alert("test 4");
}
</tt>

Le probleme étant que la boucle fonctionne
Si condition rempli l’alert "test 1" apparait
Si condition non rempli l’alert "test 2" apparait,
l’alert "test 3" apparait quelques soit la réponse à la condition (car exterieur a cette condition mais se trouve dans la boucle)

Mais le soucis c’est qu’une fois la boucle terminée mon alert tes 4 n’apparait pas ma fonction n’est donc pas terminé. Ne cherchez pas à comprendre a quoi peut servir ma fonction (et ne me dite pas que c’est parce que les variables ne sont pas déclarées elles le sont tres bien déclaré vu que la boucle fonctionne c’est seulement la fonction qui ne se termine pas
Et je cherche en vain pourquoi ?

Merci par avance.

8 réponses

Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
C'est bon j'ai trouvé,
la victoire de la france m'a tellement fais plaisir que j'ai trouvé :p

j'ai juste ajouter unreturn; dans ma boucle ;-)

Merci DomJ
J'était tellement perdu dans mon code ^^ plus de 200 lignes ça commence à pertuber en plus je ne commente rien (pas le temps) ^^
Messages postés
140
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
3 décembre 2013
1
Je m'y connais pas trop en for() mais:


<tt>

for (i=0; i<=lapersonne.length; i++)
Que fait "lapersonne" ?

</tt>









__________________







DomJ

<sup>


Age: 10 ans
Utilisateur de CodeS-Source
</sup>
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
c'est le nom d'une variable (tableau / array)
je récupére son nombre avec la petit sous fonction .length mais comme je disais aucun probleme avec ma boucle en faite elle est correctement répété et aucun souci une erreur dans la fonction elle même semble t'il mais je ne trouve pas.

Merci
Messages postés
140
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
3 décembre 2013
1
Ok car dans ton scipt tu n'a pas spécifié que laperonne est une variable.

__________________

DomJ<sup>
Age: 10 ans
Utilisateur de CodeS-Source</sup>
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
non car c'est une variable global mais pas de probleme sur la boucle en elle même
j'ai testé la variable dans une alert et elle ressort correctement.
Messages postés
140
Date d'inscription
dimanche 4 décembre 2005
Statut
Membre
Dernière intervention
3 décembre 2013
1
De rien j'aime ça essayé d'aider les autres >)










__________________







DomJ

<sup>


Age: 10 ans
Utilisateur de CodeS-Source
</sup>
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
13
B


onjour...

for( i= 0; i

<=

lapersonne.length; i++) n'est pas correct ...
il faut écrire...
for( i=0; i

<

lapersonne.length; i++)
en effet la longueur d'un tableau est son nombre d'éléments et non l'indice le plus élévé, le premier élément étant à l'indice 0

var Tableau = new Array();
Tableau[0] = 0
Tableau[1] = 1
Tableau[2] = 2
Tableau[3] = 3

alert( Tableau.length); Affichera 4 alors que l'indice maxi du tableau est 3...
dans ta boucle tu essais d'accéder à l'indice 4 qui n'existe pas...alors  ???

;0)
Messages postés
67
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
23 septembre 2008
1
je suis obligé de mettre <= imagine si mon tableau est vide (ce qui est probable dans mon script vu que les objet sont créé en fonction de certaine condition)
alors la boucle serait infini car i cherche a etre sueprieur a un tableau qui serait donc boucle infini.Et le fait de mettre <revient au même que < mais en plus accepte le donc si 0 alors c'est bon.

Mais mon script fonctionne parfaitement merci quand même