Posez votre question Signaler

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

Pouzy - Dernière réponse le 18 mai 2010 à 15:37
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 !
Lire la suite 

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

8 réponses
Réponse
+3
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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,
++
Ajouter un commentaire
Réponse
+0
moins plus
Ca dépend aussi de ce qu'il veut faire.
sandul- 5 juin 2008 à 19:47
Salut arth,

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

++
goulamass- 6 juin 2008 à 09:42
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.
Ajouter un commentaire
Réponse
+0
moins plus
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); 
        } 

    } 
} 

Ajouter un commentaire
Réponse
-1
moins plus
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....
Ajouter un commentaire
Réponse
-2
moins plus
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....
}
Ajouter un commentaire
Ce document intitulé « Java : une boucle for avec un i qui saute.. ? » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?