Médiaforma

All posts tagged test

Plusieurs types de tests peuvent être utilisés en PHP :

  • if
  • if elseif … elseif else
  • if else
  • switch
  • Tests condensés

Quelques exemples :

if

if ($a == 12) {

// Une ou plusieurs instructions exécutées sur $a vaut 12

}

if elseif … elseif else

if ($a == 12) {

// Une ou plusieurs instructions exécutées sur $a vaut 12

}

elseif ($a=13) {

// Une ou plusieurs instructions exécutées sur $a vaut 13

}

else {

// Une ou plusieurs instructions exécutées sur $a ne vaut ni 12 ni 13

}

if else

if ($a == 12) {

// Une ou plusieurs instructions exécutées sur $a vaut 12

}

else {

if ($a == 12) {

// Une ou plusieurs instructions exécutées sur $a est différent de 12

}

switch

switch ($i) {

case 0:

echo "i vaut 0";

break;

case 1:

echo "i vaut 1";

break;

case 2:

echo "i vaut 2";

break;

}

Tests condensés

Ce bloc de code :

if ($a == 15)

$b = "$a est égal à 15";

else

$b = "$a est différent de 15";

Peut être remplacé par :

$b = ($a == 15) ? "$a est égal à 15" : "$a est différent de 15";

 


switch

Comme nous l’avons vu précédemment, une instruction if else permet d’exécuter deux blocs d’instructions : le premier si une condition logique est vérifiée, le second dans le cas contraire. En imbriquant plusieurs instructions if else, le nombre de blocs peut être étendu à l’infini. Mais, au-delà de trois blocs, la lisibilité du programme diminue. La solution consiste à utiliser l’instruction de test multiple switch :

switch (expression){
  case constante1 :
    instruction;
    ...
    instruction;
    break;
  ...

  case constanteN :
    instruction;
    ...
    instruction;
    break;

  default :
    instruction;
    ...
    instruction;
}

L’évaluation du paramètre expression doit être entière. Il peut s’agir d’une variable entière ou du résultat d’un calcul entier.

Chaque bloc d’instructions est précédé d’une condition case et suivi d’une instruction break. La constante est comparée au résultat de l’expression. Si les deux valeurs sont égales, le bloc est exécuté. L’instruction break à la fin d’un bloc dévalide les tests case suivants.

Enfin, lorsque le bloc default est spécifié, les instructions qui le composent sont exécutées dans le cas où aucune des constantes case ne concorde avec l’expression placée après le mot switch.

Exercice

Demandez à l’utilisateur d’entrer un chiffre compris entre 1 et 4. En utilisant une instruction switch, affichez un message texte spécifique en fonction du chiffre entré et un autre message texte si la saisie n’est pas comprise entre 1 et 4.

Solution

public class I_Case{

  public static void main (String args[]) throws java.io.IOException
  {
    char Ch;
    System.out.println("Entrez un chiffre entre 1 et 4 :");
    Ch=(char)System.in.read();

    switch (Ch) {
      case '1' :
        System.out.println("Vous avez entré le chiffre 1.");
        break;
      case '2' :
        System.out.println("Vous avez entré le chiffre 2.");
        break;
      case '3' :
        System.out.println("Vous avez entré le chiffre 3.");
        break;
      case '4' :
        System.out.println("Vous avez entré le chiffre 4.");
        break;
      default :
        System.out.println("Vous n'avez pas entré un chiffre compris entre 1 et 4.");
    }
  }
}

Java comporte deux instructions qui permettent de tester la valeur d’une variable : if else et switch.

if else

Dans une application Java, les instructions s’exécutent séquentiellement. Il peut s’agir d’instructions provenant du langage lui-même, d’appels de procédures ou de fonctions. Dans les deux derniers cas, les fonctions appelées peuvent comporter une ou plusieurs instructions simples et/ou appels de procédures/fonctions.

Il est souvent nécessaire d’exécuter une portion de code à la condition qu’une expression logique soit vérifiée. Pour cela, il faut utiliser l’instruction if else dont voici la syntaxe :

if (condition) {
  instruction i1;
  ...
  instruction iN;
}
else{
  instruction e1;
  ...
  instruction eP;
}
  • condition est une condition logique. Elle sera vérifiée si son évaluation est différente de zéro. Elle ne sera pas vérifiée si son évaluation est égale à zéro. Par exemple, la condition if (3) est toujours vérifiée, et la condition if (0) ne l’est jamais.
  • instruction i1 à instruction iN sont les instructions exécutées dans le cas où la condition logique est vérifiée ;
  • instruction e1 à instruction eP sont les instructions exécutées dans le cas contraire.

Exercice

Ecrivez un programme qui demande d’entrer une lettre au clavier. En fonction du caractère entré, affichez un des trois messages suivants :

Type du caractère entré Message
Lettre majuscule Vous avez entré une lettre majuscule
Lettre minuscule Vous avez entré une lettre minuscule
Autre caractère Le caractère entré n’est pas une lettre

Solution

public class IfElse{
  public static void main (String args[]) throws java.io.IOException {
    char Ch;
    System.out.println("Entrez une lettre : ");
    Ch=(char)System.in.read();
    if (Ch >= 'A' && Ch <= 'Z')
      System.out.println("Vous avez entré une lettre majuscule.");
    else {
      if (Ch >= 'a' && Ch <='z')
        System.out.println("Vous avez entré une lettre minuscule.");
      else
        System.out.println("Le caractère entré n'est pas une lettre.");
    }
  }
}

Remarques

Lorsqu’une seule instruction doit être exécuté suite à un if ou un else, il n’est pas nécessaire d’utiliser des accolades.

Le mot clé else n’est pas obligatoire. Il est également possible d’utiliser une instruction simplifiée lorsqu’une seule instruction doit être exécutée :

if (condition)
  instruction;