Wählen Sie das Ausführungsergebnis des nächsten Programms
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 wird angezeigt B.32 C.33 D.43 E. Ein Kompilierungsfehler tritt auf F. Die Ausnahme wird zur Laufzeit ausgelöst
Die Antwort lautet b. Es liegt ein Problem mit dem Verhalten der Inkrementoperatoren für Präfixe und Suffixe vor.
In ++ a wird a = a + 1 gesetzt, bevor die Operation ausgeführt wird. In a ++ wird nach der Operation a = a + 1 hinzugefügt. Deshalb 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;
Die resultierende Antwort ist 32.
Wenn Sie dies mit TypeScript tun
TypeScript.ts
var a:number = 10;
var b:number = a++ + a + a-- - a-- + ++a;
console.log(b);
Es sieht aus wie das. Das Verhalten von Operatoren wie Inkrementen ist zwischen den Sprachen grob einheitlich, sodass sie auf die gleiche Weise verwendet werden können.
Recommended Posts