Posez votre question Signaler

Break en JavaScript

C45T0R - Dernière réponse le 16 nov 2008 à 12:12
Salut à tous !
J'ai un petit souci concernant un break en JS. Voici mon type de script
for([...])
{
if(toto = variable)
{
break;
}
}//Fin For
En fait je voudrais que si ma condition est vrai, je quitte ma boucle for. Seulement, si je l'écris comme ça, le break me fait quitter le if, donc ça sert à rien. Comment pourrais-je faire ?
Merci pour vos réponses ;)
Lire la suite 

Break en JavaScript »

Suggestions
4 réponses
Réponse
+2
moins plus
@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 ;)
Ajouter un commentaire
Réponse
+0
moins plus
deja ta condition est fausse
if(toto = variable) a remplacer par if(toto == variable)

et pour le break moi jlorai foutu comme ca :
arrete:
if(toto == variable)
{
break arrete;
}
Ajouter un commentaire
Réponse
+0
moins plus
Merci je teste ça ;)
Ajouter un commentaire
Réponse
+0
moins plus
oué c pas faux dsl pour l'erreur :)
Ajouter un commentaire
Ce document intitulé « Break en JavaScript » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook