Probleme boucle for

Résolu
PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 - 1 juil. 2006 à 19:53
PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 - 3 juil. 2006 à 19:11
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

PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 1
1 juil. 2006 à 23:15
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) ^^
3
cs_DomJ Messages postés 132 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 3 décembre 2013 1
1 juil. 2006 à 20:33
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>
0
PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 1
1 juil. 2006 à 21:05
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
0
cs_DomJ Messages postés 132 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 3 décembre 2013 1
1 juil. 2006 à 23:05
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>
0

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

Posez votre question
PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 1
1 juil. 2006 à 23:09
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.
0
cs_DomJ Messages postés 132 Date d'inscription dimanche 4 décembre 2005 Statut Membre Dernière intervention 3 décembre 2013 1
2 juil. 2006 à 01:27
De rien j'aime ça essayé d'aider les autres >)










__________________







DomJ

<sup>


Age: 10 ans
Utilisateur de CodeS-Source
</sup>
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
3 juil. 2006 à 17:30
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)
0
PROTECTIONNISTE Messages postés 67 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 23 septembre 2008 1
3 juil. 2006 à 19:11
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
0
Rejoignez-nous