IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Portion de code java incomprise


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut Portion de code java incomprise
    Bonjour à tous,

    Je prépare la cretif SCJP 6 et je suis au premier chapitre

    J'ai du mal à comprendre la résultat de ce bout de code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Given:
    3. public class TestDays {
    4. public enum Days { MON, TUE, WED };
    5. public static void main(String[] args) {
    6. for(Days d : Days.values() )
    7. ;
    8. Days [] d2 = Days.values();
    9. System.out.println(d2[2]);
    10. }
    11. }
    What is the result? (Choose all that apply.)
    A. TUE
    B. WED
    C. The output is unpredictable
    D. Compilation fails due to an error on line 4
    E. Compilation fails due to an error on line 6
    F. Compilation fails due to an error on line 8
    G. Compilation fails due to an error on line 9
    La réponse correcte est B

    Je n'ai pas compris le ; qui se balade à la ligne 7
    que fait une boucle for qui finit par un point-virgule?

    sur eclipse, quand j'enlève le point-virgule, il y a une erreur de compilation


    merci infiniement

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 104
    Par défaut
    tu remarqueras que les instructions de la boucle for ne sont pas comprises entre accolades {}
    Cela signifie que seule la prochaine instruction est exécutée dans la boucle.

    Or l'instruction suivante est une instruction vide car elle ne comrpend qu'un ";"

    En gros, la boucle ne sert à rien.

    Ainsi, le code à retenir est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class TestDays {
        public enum Days { MON, TUE, WED };
        public static void main(String[] args) {
           Days [] d2 = Days.values();
           System.out.println(d2[2]);
       }
    }
    En plus d'enlever le ";", essai d'enlever la boucle for également.

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    merci HozakaN pour votre réponse.

    D'après ce que j'ai appris, le ; sert à terminer une instruction.

    La boucle for
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for(Days d : Days.values() )
    n'a exécuté que sa première ligne

    J'ai du mal à me familiariser avec la nouvelle syntaxe de la boucle for.

    Comment comprendre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for(Days d : Days.values() )
    ?

    Vous dites que la boucle for ne sert à rien, mais alors comment Days d se remplit des différentes valeurs { MON, TUE, WED } sans boucle?

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Mai 2009
    Messages : 104
    Par défaut
    Tu as très bien compris, le ; sert à terminer une instruction. Mise seule, elle termine une instruction vide. C'est comme si il n'y avait pas d'instruction en quelque sorte, sauf qu'ici elle fait en sorte que la boucle n'exécute aucune instruction.

    C'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Days [] d2 = Days.values();
    qui rempli la variable d2


    Pour la boucle, il faut comprendre:" pour chaque valeur de l'énumération Days, la variable d est égale à la valeur de l'énumération Days"

    En gros,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     for(Days d : Days.values() )
       System.out.println("le jour actuel est : " + d);
    renverrai

    le jour actuel est : MON
    le jour actuel est : TUE
    le jour actuel est : WED

  5. #5
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 18
    Par défaut
    merci
    C'est plus clair maintenant

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [andromda]Infos sur andromda, générateur de code JAVA
    Par ugos dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 08/09/2009, 15h30
  2. [java.lang.class] Votre avis sur une portion de code
    Par be_tnt dans le forum Langage
    Réponses: 3
    Dernier message: 18/10/2006, 16h55
  3. traduction automatique d'un code JAVA en code HTML
    Par Lyonnais dans le forum EDI et Outils pour Java
    Réponses: 2
    Dernier message: 31/05/2005, 13h02
  4. Recherche de Logiciel d'audit de code java
    Par K-ro dans le forum Qualimétrie
    Réponses: 4
    Dernier message: 12/10/2004, 17h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo