Sélectionnez le résultat de l'exécution du programme suivant
java.java
public class Main{
public static void main(String[] args){
int a = 10;
int b = a++ + a + a-- - a-- + ++a;
System.out.println(b);
}
}
A.7 s'affiche B.32 C.33 D.43 E. Une erreur de compilation se produit F. Une exception est émise lors de l'exécution
La réponse est b. Il y a un problème avec le comportement des opérateurs d'incrémentation de préfixe et de suffixe.
Dans ++ a, a = a + 1 est défini avant que l'opération ne soit effectuée. Dans a ++, a = a + 1 est ajouté après l'opération. Donc a = 10; b = a++ + a + a-- - a-- + ++a;
a = 11; b = 10 + a + a-- - a-- + ++a;
a = 11; b = 10 + 11 + a-- - a-- + ++a;
a = 10; b = 10 + 11 + 11 - a-- + ++a;
a = 9; b = 10 + 11 + 11 - 10 + ++a;
a = 10; b = 10 + 11 + 11 - 10 +10;
La réponse qui en résulte est 32.
Si vous faites cela avec TypeScript
TypeScript.ts
var a:number = 10;
var b:number = a++ + a + a-- - a-- + ++a;
console.log(b);
Ça ressemble à ça. Le comportement des opérateurs tels que les incréments est à peu près unifié entre les langues, de sorte qu'ils peuvent être utilisés de la même manière.
Recommended Posts