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

Pouzy -  
dam_ged Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

6 réponses

Jres
 
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
sandul Messages postés 3927 Date d'inscription   Statut Membre Dernière intervention   723
 
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
arth Messages postés 9374 Date d'inscription   Statut Contributeur Dernière intervention   1 293
 
Ca dépend aussi de ce qu'il veut faire.
0
sandul Messages postés 3927 Date d'inscription   Statut Membre Dernière intervention   723
 
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
goulamass Messages postés 1426 Date d'inscription   Statut Membre Dernière intervention   177 > sandul Messages postés 3927 Date d'inscription   Statut Membre Dernière intervention  
 
Oui 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
dam_ged Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zek27 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
goulamass Messages postés 1426 Date d'inscription   Statut Membre Dernière intervention   177
 
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