Rechercher : dans
Par :

Break en JavaScript

Dernière réponse le 16 nov 2008 à 12:12:21 C45T0R, le 16 nov 2008 à 10:29:36 
 Signaler ce message aux modérateurs

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 ;)

Configuration: Windows XP
Firefox 3.0.4

Meilleures réponses pour « Break en JavaScript » dans :
Javascript - Introduction au langage Javascript Voir Qu'est-ce que le Javascript? Le Javascript est un langage de script incorporé dans un document HTML. Historiquement il s'agit même du premier langage de script pour le Web. Ce langage est un langage de programmation qui permet d'apporter des...
Javascript - Les événements Voir Qu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - Les variables Voir Le concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Centrer verticalement une page web VoirPour centrer verticalement une page web, impossible de s'en sortir en css. Une solution bien pratique : JavaScript. 1. Le fichier .js 2. La page .html 3. Utilisation 4. Inconvénients 5. Rappel Merci à Dalida pour la source du...
Javascript - Coloration syntaxique dans vos pages web VoirSi vous avez un site web contenant des exemples de code (php, javascript, C#, Delphi, Python...), il peut être intéressant d'avoir une coloration syntaxique. C'est parfois pénible à réaliser, mais il existe une librairie Javascript qui permet de...
Javascript - l'objet Array VoirLes particularités de l'objet Array L'objet Array est un objet du noyau Javascript permettant de créer et de manipuler des tableaux. Voici la syntaxe à utiliser pour créer une variable tableau : var x = new Array(element1[, element2, ...]); Si...
Javascript - Les structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle' On appelle structure conditonnelle les instructions qui permettent de tester si une condition est vraie ou non, ce qui permet notamment de donner de l'interactivité à vos scripts : Instruction...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

societeserieuse, le 16 nov 2008 à 10:42:35

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;
}

Répondre à societeserieuse

2

C45T0R, le 16 nov 2008 à 11:08:54

Merci je teste ça ;)

Répondre à C45T0R

3

Groarh, le 16 nov 2008 à 11:46:44

@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 ;)

Répondre à Groarh

4

 societeserieuse, le 16 nov 2008 à 12:12:21

Oué c pas faux dsl pour l'erreur :)

Répondre à societeserieuse