L'éditeur JavaScript
Visiteur non-identifié | Identifiez-vous | Devenir membre
Code perdu ? | Combien de visiteurs sur votre site ?
Rechercher :
Page d'accueil
     Home Page

JavaScript
     Tous les scripts
     Proposer un script
     Recherche de script
     AJAX
     Cours de JavaScript
     Liste de discussion
     Forums

Services :
     CountUs
     myCircle
     ClickInText
     XooIt

Trucs et astuces :
     HTML / CSS
     PHP / MySQL
     Réferencement
     Graph / Présentation
     Toutes les astuces
     Ajouter un article

MailingList :
113629 abonnés

Annuaire webmaster :      Hebergement web
     Referencement
     Sites webmasters
     XHTML - CSS2
     PHP
     Affiliation - Pub
     FAI

     Annuaire webmaster

Ressources pour webmasters :
     Kit graphique
     Foire aux questions
     Les membres
     Devenir annonceur
     Faire un lien
     Contact

Partenaire :
     Compteur live
     Créer un forum
     Le PHP facile
     Comscripts
     Liens sponsorisés
     Page Rank
     Gifs animés, f...
     Le village de ...
     Easy-script.com
     Poésie et cita...
     Les kits graph...
     La cuisine de ...
     Azote.org - no...
     Web creation ...
     Créer son site...
     Electroniq...
     Les autres
     Votre site ici ?


  > Qu'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 de donner de l'interactivité à vos scripts par exemple.

L'instruction if

L'instruction if est la structure de test la plus basique, on la retrouve dans tous les langages (avec une syntaxe différente...). Elle permet d'exécuter une série d'instruction si jamais une condition est réalisée.

La syntaxe de cette expression est la suivante:
if (condition réalisé) {
liste d'instructions
}

Remarques:

  • la condition doit être entre des parenthèses
  • il est possible de définir plusieurs conditions à remplir avec les opérateurs ET et OU (&& et ||)
    par exemple:
    if ((condition1)&&(condition2)) teste si les deux conditions sont vraies
    if ((condition1)||(condition2)) exécutera les instructions si l'une ou l'autre des deux conditions est vraie
  • s'il n'y a qu'une instruction, les accolades ne sont pas nécessaires...

L'instruction if ... else

L'instruction if dans sa forme basique ne permet de tester qu'une condition, or la plupart du temps on aimerait pouvoir choisir les instructions à exécuter en cas de non réalisation de la condition...
L'expression if ... else permet d'exécuter une autre série d'instruction en cas de non-réalisation de la condition.

La syntaxe de cette expression est la suivante:
if (condition réalisé) {
liste d'instructions
}
else {
autre série d'instructions
}

une façon plus courte de faire un test

Il est possible de faire un test avec une structure beaucoup moins lourde grâce à la structure suivante:
(condition) ? instruction si vrai : instruction si faux

Remarques:

  • la condition doit être entre des parenthèses
  • Lorsque la condition est vraie, l'instruction de gauche est exécutée
  • Lorsque la condition est fausse, l'instruction de droite est exécutée

Les boucles

Les boucles sont des structures qui permettent d'exécuter plusieurs fois la même série d'instructions jusqu'à ce qu'une condition ne soit plus réalisée...
La façon la plus commune de faire une boucle, est de créer un compteur (une variable qui s'incrémente, c'est-à-dire qui augmente de 1 à chaque tour de boucle) et de faire arrêter la boucle lorsque le compteur dépasse une certaine valeur.

La boucle for

L'instruction for permet d'exécuter plusieurs fois la même série d'instructions: c'est une boucle!

Dans sa syntaxe, il suffit de préciser le nom de la variable qui sert de compteur (et éventuellement sa valeur de départ, la condition sur la variable pour laquelle la boucle s'arrête (basiquement une condition qui teste si la valeur du compteur dépasse une limite) et enfin une instruction qui incrémente (ou décrémente) le compteur.

La syntaxe de cette expression est la suivante:
for (compteur; condition; modification du compteur) {
liste d'instructions
}

Par exemple:
for (i=1; i<6; i++) {
Alert(i)
}

Cette boucle affiche 5 fois la valeur de i, c'est-à-dire 1,2,3,4,5
Elle commence à i=1, vérifie que i est bien inférieur à 6, etc... jusqu'à atteindre la valeur i=6, pour laquelle la condition ne sera plus réalisée, la boucle s'interrompra et le programme continuera son cours.

  • il faudra toujours vérifier que la boucle a bien une condition de sortie (i.e le compteur s'incrémente correctement)
  • une instruction Alert(i); dans votre boucle est un bon moyen pour vérifier la valeur du compteur pas à pas!
  • il faut bien compter le nombre de fois que l'on veut faire exécuter la boucle:
    • for(i=0;i<10;i++) exécute 10 fois la boucle (i de 0 à 9)
    • for(i=0;i<=10;i++) exécute 11 fois la boucle (i de 0 à 10)
    • for(i=1;i<10;i++) exécute 9 fois la boucle (i de 1 à 9)
    • for(i=1;i<=10;i++) exécute 10 fois la boucle (i de 1 à 10)

L'instruction while

L'instruction while représente un autre moyen d'exécuter plusieurs fois la même série d'instructions.

La syntaxe de cette expression est la suivante:
while (condition réalisée) {
liste d'instructions
}

Cette instruction exécute la liste d'instructions tant que (while est un mot anglais qui signifie tant que) la condition est réalisée.
La condition de sortie pouvant être n'importe quelle structure conditionnelle, les risques de boucle infinie (boucle dont la condition est toujours vraie) sont grands, c'est-à-dire qu'elle risque de provoquer un plantage du navigateur!

Saut inconditionnel

Il peut être nécessaire de faire sauter à la boucle une ou plusieurs valeurs sans pour autant mettre fin à celle-ci.

La syntaxe de cette expression est "continue;" (cette instruction se place dans une boucle!), on l'associe généralement à une structure conditionnelle, sinon les lignes situées entre cette instruction et la fin de la boucle seraient obsolètes.

Exemple: Imaginons que l'on veuille imprimer pour x allant de 1 à 10 la valeur de 1/(x-7) ... il est évident que pour x=7 il y aura une erreur. Heureusement, grâce à l'instruction continue il est possible de traiter cette valeur à part puis de continuer la boucle!
x=1
while (x<=10) {
if (x == 7) {
Alert('division par 0');
continue;
}
a = 1/(x-7);
Alert(x);
x++
}

Il y avait une erreur dans ce script... peut-être ne l'avez-vous pas vue:
Lorsque x est égal à 7, le compteur ne s'incrémente plus, il reste constamment à la valeur 7, il aurait fallu écrire:
x=1
while (x<=10) {
if (x == 7) {
Alert('division par 0');
x++;
continue;
}
a = 1/(x-7);
Alert(x);
x++
}

Arrêt inconditionnel

A l'inverse, il peut être voulu d'arrêter prématurément la boucle, pour une autre conditon que celle précisé dans l'en-tète de la boucle. L'instruction break permet d'arrêter une boucle (for ou bien while). Il s'agit, tout comme continue, de l'associer à une structure conditionnelle, sans laquelle la boucle ne ferait jamais plus d'un tour!

Dans l'exemple de tout à l'heure, par exemple si l'on ne savait pas à quel moment le dénominateur (x-7) s'annule (bon...OK...pour des équations plus compliquées par exemple) il serait possible de faire arrêter la boucle en cas d'annulation du dénominateur, pour éviter une division par zéro!
for (x=1; x<=10; x++) {
a = x-7;
if (a == 0) {
Alert('division par 0');
break;
}
Alert(1/a);
}

Cours de JavaScript en partenariat avec CommentCaMarche.net
N'hésitez pas à visiter cet excellent site contenant des cours sur presque tous les langages de programmation !


Annotations des visiteurs :

De Groumphy - le 30-11-2005

Une petite annotation au cours concernant principalement les structures conditionnelles et principalement les expressions booléennes.

J&#8217;ai pu lire récemment sur le site Journal du Net &#8211; Developpeur (http://developpeur.journaldunet.com/) que selon le Loi de la Dualité de De Morgan (et plus particulièrement son théorème) sur l&#8217;expression de contraires qu&#8217;il était possible de simplifier les tests en prenant l&#8217;opposé de la valeur recherchée.

Ainsi les valeurs seraient à prendre par la négative pour pouvoir isoler le cas précis.

Nous pouvons donc rectifier les avis suivants (en premier l&#8217;original et en second « le corrigé ») :
if ((!a)&&(!b)) { // réalisation }
if (!((a)||(b))) { // réalisation }

if ((!a)&&(b)) { // réalisation }
if (!((a)||(!b))) { // réalisation }

if ((a)&&(!b)) { // réalisation }
if (!(!(a)||(b))) { // réalisation }

if ((a)&&(b)) { // réalisation }
if (!(!a)||(!b)) { // réalisation }

if (!(a)||!(b)) { // réalisation }
if (!((a)&&(b))) { // réalisation }

if (!(a)||(b)) { // réalisation }
if (!((a)||(!b))) { // réalisation }

if ((a)||( !b)) { // réalisation }
if (!(!a)&&(b)) { // réalisation }

if ((a)||(b)) { // réalisation }
if (!(!(a)&&(!b))) { // réalisation }

Ce qui revient à vulgairement dit à la factorisation des éléments de rejet et l&#8217;utilisation de la distributivité sur l&#8217;association de ceux-ci.


>> Poster une annotation sur ce cours


Les autres cours :

|< Les opérateurs Les fonctions >|








compteur gratuit
actuellement en ligne

    PUBLICITE



     ANNUAIRE WEBMAST.
Wedoo
La plus connue des top-lists.
http://fr.wedoo.com
Cat : Cercles de sites
Voir l'annuaire webmaster


     LES SCRIPTS :
78 à éditer
68 à copier/coller
247 des membres
2580 sur le web
>> Tous les scripts

     LES MEMBRES :
61263 membres
7174 comptes CountUs
1719 comptes myCircle

     LES FORUMS :
14 forums
39936 topics
190879 messages
>> Les forums

    SONDAGE

Vous avez un blog ou site classique ?
Un blog
Un site classique
Les deux !
La mini-astuce "Graphisme / Présentation" du jour par feidakin
Vous désirez centrer votre animation Flash, malheusement cela modifie souvent l'aspect de la page . il suffit de mettres les balises <center></center> entre les paramètres de l'animation, et le tour est joué.
Proposer votre mini-astuce | Archives des mini-astuces
© 1999-2010 EJS - Tous droits réservés | CNIL N° 844440 | 13/03/2010 12:38:11 | Design by | Gen. en 0.479 sec.