Java Language Piège - littéraux octaux


Exemple

Considérez l'extrait de code suivant:

// Print the sum of the numbers 1 to 10
int count = 0;
for (int i = 1; i < 010; i++) {    // Mistake here ....
    count = count + i;
}
System.out.println("The sum of 1 to 10 is " + count);

Un débutant Java pourrait être surpris de savoir que le programme ci-dessus imprime la mauvaise réponse. Il affiche en fait la somme des chiffres 1 à 8.

La raison en est qu'un littéral entier qui commence par le chiffre zéro ('0') est interprété par le compilateur Java comme un littéral octal, et non comme un littéral décimal. Ainsi, 010 est le nombre octal 10, qui est 8 en décimal.