24
août
2005
SCJP 5.0 Défi 3.4: ++ et –
août
2005
Un article de vbrabant
8 Commentaires
Pour vous préparer à la Certification Java SCJP 5.0, nous vous proposons quelques défis.
Aujourd’hui, en voici un nouveau concernant les opérateurs ++ et –.
Quel sera le résultat affiché à la console après l’exécution du bout de code suivant ?
int a = 5;
int b = 8;
int c = 3;
System.out.println(a+++b-c--);
System.out.println(a+++b+++c);
Et pourquoi ?
La réponse à la page suivante
8 Commentaires + Ajouter un commentaire
Commentaires récents
Archives
- janvier 2012
- novembre 2010
- février 2009
- janvier 2009
- décembre 2008
- septembre 2008
- août 2008
- décembre 2007
- octobre 2007
- septembre 2007
- juillet 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007
- janvier 2007
- décembre 2006
- novembre 2006
- octobre 2006
- septembre 2006
- août 2006
- juillet 2006
- juin 2006
- mai 2006
- avril 2006
- février 2006
- janvier 2006
- décembre 2005
- novembre 2005
- octobre 2005
- septembre 2005
- août 2005
- juillet 2005
- juin 2005
- mai 2005
- avril 2005
Catégories
- Certification
- Défis
- Devoxx
- Devoxx 2008
- Devoxx 2010
- Devoxx France 2012
- Divers
- Événements Java
- Fiches
- Hardware
- In English
- Java
- JavaDay 2006
- JavaFX
- JavaOne 2005
- JavaOne 2006
- JavaOne 2007
- Javapolis 2005
- Javapolis 2006
- Javapolis 2007
- JBoss
- Livres
- Mac
- NetBeans
- OpenJDK
- Pensée
- Performance
- Perles
- Sun Tech Days Paris 2007
- Traduction
Pour la page 2 c’est 11 …
En tout cas en C c’est comme ca…
Si on lit bien la page 2 :
3. ++ ou — situé derrière la variable fait que le résultat est augmenté après calcul, mais avant assignation.
Donc forcement c’est 11
pour la page 2 la réponse est 10 nop ?
Pour le défi de la page 2, je dirais plutôt 10..
En effet, l’affectation va être effectuée, puis seulement l’incrémentation. Ca serait 11 si on avait
i=++i;
La chaine est lue de gauche à droite.
Ainsi c+++ doit être vu ainsi : (c++)+… et non pas comme c+(++…)
C’est une situation également piégeante…
pour la 1 : 6+8-2 = 12
pour la 2 : 6+9+3 = 18
Pour la page 2, c’est 11 vu la priorité de l’opérateur suffixe++.
Les expressions étant évaluées de droite à gauche, je dirais :
5 + 9 – 3 = 11 (a+[++b]-[c–])
5 + 10 + 3 = 18 (a+[++b]+[++c])
alors je dirais :
pour la premiere : 5+8-3 donc « 10 »
pour la seconde : 6+8+2 donc « 16 »