April 16, 2014

Exercice Java : Itération sur les valeurs d’un type énuméré


Reviewed by:
Rating:
5
On February 21, 2013
Last modified:February 21, 2013

Summary:

Exercice Java : Itération sur les valeurs d’un type énuméré

Exercice java traite le  sujet suivant:

Itération sur les valeurs d’un type énuméré

Il est fréquent que l’on ait besoin de parcourir les différentes valeurs d’un type énuméré. Iln’est cependant pas possible  d’utiliser la boucle  for usuelle puisque les opérateurs arithmétiques ne s’appliquent pas à un type énuméré. En  revanche, on peut recourir à la boucle  for…each, introduite elle aussi par le JDK 5.0 et que nous avons déjà rencontrée  à plusieurs repri-ses. Pour ce faire, il est quand même nécessaire de créer d’abord un tableau des valeurs dutype, tableau sur lequel on peut ensuite itérer avec la boucle  for… each . Ce tableau peut êtreobtenu à l’aide de la méthode values de la classe  Enum.

Examinons ce petit Exercice java:



On suppose qu’on dispose d’un type énuméré nommé Suite. Écrire un programme qui en affiche les différents libellés. Par exemple, si Suite a été défini ainsi (notez l’emploi du libellé ut, car do n’est pas utilisable puisqu’il s’agit d’un mot-clé) :

enum Suite { ut, re, mi, fa, sol, la, si }

Le programme affichera :

Liste des valeurs du type Suite : 
ut
re
mi
fa
sol
la
si

On peut facilement itérer sur les différentes valeurs d’un type énuméré à l’aide de la boucle dite for… each, introduite par le JDK 5.0. Il faut cependant au préalable créer un tableau des valeurs du type en utilisant la méthode values de la classe Enum ; l’expression Suite.values() représente un tableau formé des différentes valeurs du type Suite. En définitive, voici le programme voulu ; il fonctionne quelle que soit la définition du type Suite :

public class TstSuite
{ public static void main (String args[])
  { System.out.println( "Liste des valeurs du type Suite : " ) ;
    for (Suite s : Suite.values() )
      System.out.println (s) ;   // appel implicite de toString ()
  }
}
enum Suite { ut, re, mi, fa, sol, la, si }

Speak Your Mind

*


*