statement

statement 
      ::= 
      variable_declaration 
      | ( expression ";" ) 
      | ( statement_block ) 
      | ( if_statement ) 
      | ( do_statement ) 
      | ( while_statement ) 
      | ( for_statement ) 
      | ( try_statement ) 
      | ( switch_statement ) 
      | ( "synchronized" "(" expression ")" statement ) 
      | ( "return" [ expression ] ";" ) 
      | ( "throw" expression ";" ) 
      | ( identifier ":" statement ) 
      | ( "break" [ identifier ] ";" ) 
      | ( "continue" [ identifier ] ";" ) 
      | ( ";" ) 

[rule list]
This rule is called by

-> do_statement -> for_statement -> if_statement -> statement -> statement_block -> switch_statement -> try_statement -> while_statement

Explications

Instructions de contrôle de flot

Pour les instructions de boucle et de test, vous trouverez toutes les informations nécessaires sur les pages les concernant. Les instructions permettant l'exécution repétitive sont do, while et for. Pour l'exécution conditionnelle, vous pouvez utiliser soit if, soit l'opérateur "ternaire" ? décrit à la page expressions logiques.

return

Lorsque l'on déclare une méthode, si le type de celle-ci n'est pas void, alors elle retourne une valeur. Le corps de cette méthode doit contenir au moins une instruction return. Lorsque l'on rencontre l'instruction "return val", on quitte la méthode et on retourne la valeur qui est fournie, val dans ce cas précis.

":", break et continue

break permet de sortir d'une boucle sans que l'on réévalue les conditions. L'identificateur facultatif permet de spécifier le nom de la boucle à quitter, au cas oł plusieurs boucles seraient imbriquées. continue permet de sauter les instructions restantes de la boucle, et de réévaluer immédiatement la condition.

Exemple

// on recherche une valeur dans un tableau

int i;
for (i = 0;i < tab.length;i++) { // parcours le tableau
    if (tab[i] == recherche)
        break;
}
System.out.println("l'element "+recherche+" a ete trouve a l'index "+i);
Nous l'avons dit, si plusieurs boucles sont imbriquées, on peut décider de les nommer à l'aide du symbole ":".

Exemple

// on parcourt tous les elements d'une matrice
// carree a la recherche d'une valeur

int x,y;
ext : for (x = 0;x < tab.length) {
    for (y = 0;y < tab[0].length) {
        if (tab[x][y] == recherche)
            break ext;
    }
}
System.out.println("la position recherchee est "+x+","+y);
throw et try. Le traitement des exceptions fait usage de throw et de try. Vous pouvez vous reporter à la page concernant les exceptions en général ou à la page prévue pour la clause try.

Le mot clé synchronized est décrit en détail à la page consacrée à l'exclusion mutuelle.


Index général - Index concepts - Règles BNF
© 1996, DIP Genève, Alexandre Maret & Jacques Guyot
page générée Fri Jun 21 15:41:10 MET DST 1996