Problème de compréhension d'une boucle while

Bonjour, ma question va très probablement vous paraître débile mais je n'arrive vraiment pas à comprendre.
Je pensais que le moniteur allait m'afficher 0 2 4 6, mais non, il m'affiche 1 5 9. Je ne comprends pas qu'en sommant deux nombres identiques on obtienne un nombre impair... Si quelqu'un pouvait m'expliquer ça serait super cool.
Merci d'avance.

public class Test {

public static void main(String[] args) {
int a = 0;
while (a<5){
System.out.println(a++ + a++);

}
}
}

3 réponses

  1. Modérateur
    a++ + a++

    Utiliser a l'incrémenter, puis l'additionner avec a puis l'incrémenter.

    En gros,
    Var1=a
    a=a+1
    Var2=a
    a=a+1
    Afficher Var1+Var2
    Donc 0+1 au début, puis 2+3, puis 4+9, ...
    1. Salut, essaye de mettre 'a' en global, pour voir.
      1. Modérateur
        Totalement inutile, le problème est le ++, pas la portée de la variable a.
      2. @NHenryDésolé si je t'ai froissé monsieur jesaistout ...
    2. Modérateur
      Bonjour,

      "en sommant deux nombres identiques"
      Ce n'est pas ce que tu fais, vu que tu n'additionnes pas
      a
      avec
      a
      mais
      a++
      avec
      a++
      ...

      "Je pensais que le moniteur allait m'afficher 0 2 4 6"
      Tu as donc compris que
      a++
      permettait d'augmenter
      a
      de 1, et c'est exactement ce qui se passe.

      Si
      a
      vaut 0 au départ,
      a++
      va renvoyer 0 et passer
      a
      à 1, en refaisant à nouveau
      a++
      ça renvoie 1 (la nouvelle valeur de
      a
      ) et ça passe
      a
      à 2.
      Donc
      a++ + a++
      aura pour effet de calculer 0+1 et passer
      a
      de 0 à 2...

      CQFD :-)