Ich verstehe, dass das Statement-Terminator-Symbol ;
, wenn es nur solar verwendet wird, eine Null-Anweisung darstellt. Außerdem können "leere Schleifenkörper" ein nützliches Programmierungskonstrukt sein und werden unter Verwendung von NULL-Anweisungen erstellt.Jeder geringfügige Unterschied zwischen; oder {}, um eine Nullanweisung darzustellen?
Mit Blick auf die while-Anweisung unten, in Zeile # 2, entschied ich mich, das abschließende ;
Symbol mit einem Paar Rücken an Rücken {}
geschweiften Klammern zu ersetzen. Der Code kompiliert und lief OK. Bedeutet dies, dass der Java-Compiler einen leeren Codeblock (dargestellt durch die "leeren" {}
geschweiften Klammern) mit einer ;
basierten Nullanweisung ersetzt?
Wenn Java etwas etwas anderes macht, wäre der resultierende Bytecode in beiden Fällen identisch? (Es tut mir leid, dass ich diesen ATM nicht überprüfen kann. Ich bin neu in Java, und ich habe noch nicht das notwendige Wissen, um Bytecode anzuzeigen und zu untersuchen).
int i=0,j=100;
// Either a terminating ; symbol or {} braces work to make an "empty loop body".
while (++i < --j) {}
System.out.println("The midpoint between 0 and 100 is " +i); // Midpoint is 50.
Ich benutze tatsächlich '{;}' Um den Block zu sehen, aber auch zu wissen, dass ich wirklich nichts in diesen Block legen wollte, und nicht nur die geschweiften Klammern erstellt, um später ausgefüllt zu werden. Dies ist jedoch meine eigene Sache und habe noch nie jemand anderes gesehen. – Cruncher