Java : une boucle for avec un i qui saute.. ?

Bonjour,

Je souhaiterais faire une boucle for comme tout le monde les connaît, mais au lieu d'avoir une dé/in.crémentation de ma variable, je veux "choisir" sa valeur dans une énumération ou un tableau.

Pour faire plus clair, je veux que ma variable soit d'abord "Lundi", puis "Mardi", etc... et pas "1, 2... 7"

Donc j'exclus le :

for (int i=1;i<=7;i++)  {}


Je souhaiterais donc un truc du style :

for (i="Lundi";i="Mardi"...)  {}


Mais je me doute bien que ce n'est pas ça. Peut être avec un while ?

Toute idée est la bienvenue. En vous remerciant par avance !
Configuration: Linux
Firefox 2.0.0.14

6 réponses

  1. Bonjour,
    En java 1.5 et ultérieur :

    public class Test {
    	public enum Jour {
    	    Lundi, Mardi, Mercredi, 
    	    Jeudi, Vendredi, Samedi, Dimanche 
    	}
    
    	public static void main(String[] args) {
    		for (Jour j : Jour.values()) {
    			System.out.println("j=" + j);
    		}
    	}
    }
    


    Bon courage
    3
    1. Salut,

      Avec Java 6 (et bientôt bien plus avec Java 7) les possibilités s'élargissent; en effet, on peut utiliser les énumérations même dans des switch..case. Exemple:
      package tests;
      
      public class EnumTest {
      	public enum Jours {
      		lundi, mardi, mercredi
      	};
      
      	/**
      	 * @param args
      	 */
      	public static void main(String[] args) {
      		Jours jour = Jours.mardi;
      		switch (jour) {
      			case lundi:
      				System.out.println("chuis lundi");
      				break;
      			case mardi:
      				System.out.println("chuis mardi");
      				break;
      			case mercredi:
      				System.out.println("chuis mercredi");
      				break;
      		}
      	}
      
      }
      

      HTH,
      ++
      0
      1. Contributeur
        Ca dépend aussi de ce qu'il veut faire.
        0
        1. Salut arth,

          Oui, bien sûr, c'était juste un exemple d'itération avec une boucle sans utiliser un entier pour le compteur.

          ++
          0
        2. @sandulOui mais le switch ne te permet pas d'implémenter une boucle parcourant chaque élément mais simplement d'en choisir un

          Il te faudra faire chaque valeur à la main.
          0
      2. Avec for-each tu peux faire ca :

        
        import java.util.ArrayList; 
        import java.util.List; 
          
        public class ForEachExample { 
            public static void main(String[] args) { 
        
                List<String> jours = new ArrayList<String>(); 
                jours.add("Lundi"); 
                jours.add("Mardi"); 
                jours.add("Mercredi");
                jours.add("Jeudi"); 
                jours.add("Vendredi"); 
                jours.add("Samedi"); 
                jours.add("Dimanche"); 
                  
                for (String jour : jours) { 
                   System.out.println("Jour: " + jour); 
                } 
        
            } 
        } 
        
        
        0
        1. par rapport a ta demande... le mieu c'est ce qu'a dis goulamass:

          String jour;

          for (int i=0;i<7;i++)
          {
          if(i==0)
          {
          jour="Lundi";
          }

          if(i==1)
          {
          jour="Mardi";
          }
          etc....
          -1
          1. Bonjour,

            Tu peux pas.

            Cependant tu faux faire un truc du style :

            String jour;

            for (int i=0;i<7;i++)
            {
            if(i==0)
            {
            jour="Lundi";
            }

            if(i==1)
            {
            jour="Mardi";
            }
            etc....
            }
            -2