if/else

images/whitebelt.png

La séquence des instructions peut être altérée sélectivement par une condition (si test alors code):

Un if simple. 

   Climatisation rapport = appareilMesure.getRapport() ;
   if( rapport.temperature > 40 ) {
      loggerCourant.log(Level.SEVERE, "temperature trop élevée", rapport) ;
   }
   // autre partie du code toujours exécutée

[Note]

L’argument du if doit toujours être un boolean (ou une expression qui renvoie un boolean). -Il n’est pas possible d’utiliser un int comme en C/C++ -

On peut également avoir une structure si test alors code sinon code :

if-else

   if( rapport.temperature > 40 ) {
      loggerCourant.log(Level.SEVERE, "temperature trop élevée", rapport) ;
   } else {
      loggerCourant.log(Level.FINE, "rapport VMC", rapport) ;
   }

On peut aussi écrire des ifs en cascade :

   if( rapport.temperature > 40 ) {
      loggerCourant.log(Level.SEVERE, "temperature trop élevée", rapport) ;
   }  else if (rapport.temperature > 30 ) {
      loggerCourant.log(Level.WARNING, "attention à la temperature", rapport) ;
   } else {
      loggerCourant.log(Level.FINE, "rapport VMC", rapport) ;
   }
[Avertissement]

Lorsqu’il y a une seule instruction associée à un if il est possible de se passer d’un bloc.

   if( rapport.temperature > 40 )
      loggerCourant.log(Level.SEVERE, "temperature trop élevée", rapport) ;

Cette possibilité se retrouve avec les autres structures comme les boucles ci-après.

Notre conseil: à réserver uniquement à de petits codes s'écrivant if(test) expression; sur une seule ligne! Sinon vous risquez de faire des erreurs (et ça ne facilite par la lecture).

--exercices--