J'ai besoin de boucle à travers un certain nombre (xx). xx commence toujours à zéro. Mon problème est que si la variable moveDirection
est +1 alors xx augmente jusqu'à ce qu'il atteigne le positif de range
. Si moveDirection
est -1, alors xx diminue jusqu'à atteindre le négatif de range
.Comment réduire la duplication de code dans cet exemple
Dans le code ci-dessous, je l'ai fait en ayant un test if instruction pour moveDirection d'abord, puis je l'ai en double la boucle, et édité les valeurs pour chaque cas. Mon code se trouve dans ActionScript3, mais la langue n'a pas d'importance.
var p:Point;
var xx:int;
if (moveDirection > 0)
{
for (xx = 0; xx < range; xx++)
{
if (hitTestPoint(xx, yy))
{
return true;
}
}
}
else
{
for (xx = 0; xx > range; xx--)
{
if (hitTestPoint(xx, yy))
{
return true;
}
}
}
Y a-t-il une meilleure façon de procéder, peut-être sans duplication de la boucle for? S'il y a d'autres conseils, ce serait grandement apprécié.
Je changerais le nom 'moveDirection' en' motionVector' ou quelque chose, pour être clair sur ce qu'il stocke. 'moveDirection' sonne trop comme une énumération ou quelque chose :) – porges
True. J'étais juste paresseux et j'utilisais des variables prédéfinies, donc je n'avais pas besoin de les définir moi-même. : P –
Très élégant! Merci beaucoup. Je suis toujours étonné par toutes les différentes façons de faire des boucles (ou d'autres boucles). –