@C45STOR : Astuce !
Pour pas se faire avoir avec les tests d'égalité, mets la variable testée à droite. Exemple :
if (42 == maValeur)
Si jamais tu te plantes, ça donne ça :
if (42 = maValeur)
et ça te renvoie une
syntax error avec le numéro de ligne.
Pratique !
@societeserieuse : cool, je croyais être le seul à connaître les
labels !!
Sauf que...
1/ tu ne l'as pas mis au bon endroit. On labélise la boucle à casser, donc le bon code serait plutôt :
arrete : for ( ... ) {
if (variable == toto)
break arrete;
}(oui, je ne mets pas d'accolades à
if quand il n'y a qu'une instruction, c'est plus clair)
2/ Même pas besoin de labels. Le
if n'est pas considéré comme une boucle... J'en veux pour preuve (flagrante !) ce script que je viens de tester avec succès :
for (var i = 0; i < 6; i++) {
alert(i);
if (2 == i)
break;
}
3/ Encore plus fort ! Il suffit de regarder de plus près la syntaxe de
for :for (initialisation; condition de continuation; itération)
initialisation et
itération peuvent être n'importe quelle instruction, je dis bien n'importe laquelle ! Un exemple très joli pour ajouter une fonction de somme aux tableaux :
Array.prototype.sum = function() {
for (var i = 0, sigma = 0; i < this.length; sigma += this[i++]);
return sigma;
}
Et
condition de continuation doit être équivalente à un booléen, mais encore une fois tout est permis !
Dans l'exemple avec
toto, on peut donc simplifier à mort, comme ceci :
for(var i = 0; i < 6 && variable != toto; i++) {
alert(i);
/*
instructions modifiant toto
*/
}
Admettez que c'est difficile de faire plus concis ;)