Schreiben Sie beispielsweise einen Code wie diesen:
Kopieren Sie den Codecode wie folgt:
int i;
{
int j=1;
i=j;
}
Wenn dieser Code im Klassendefinitionsbereich vorhanden ist, wissen wir, dass es sich um einen gewöhnlichen Anweisungsblock handelt, der zum Initialisieren des Inhalts von Klassenattributen verwendet wird. Er wird aufgerufen, wenn die Klasse instanziiert wird, und einige Methoden können darin ausgeführt werden.
In vielen Fällen wird es in Singleton- und anderen Modi verwendet. Fügen Sie davor eine statische Variable hinzu, um Inhalte für komplexe Klassen zu initialisieren, wodurch einige durch die Ladesequenz verursachte Laufzeitausnahmen vermieden werden können.
Was aber, wenn dieser Code in einer Methode vorkommt?
Im Grunde macht es überhaupt keinen Sinn. Meiner vorherigen Meinung nach war es nur ein Format zum Einschließen von Code, sonst nichts.
Heute habe ich einen kleinen Code zum Thema „Anweisungs-Tags“ geschrieben:
Kopieren Sie den Codecode wie folgt:
label17: int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
wenn (Flagge)
Break label17;
0 zurückgeben;
An der Position „:“ ist die Ausnahme „Syntaxfehler beim Token „:“ { erwartet nach diesem Token“ aufgetreten.
Das heißt, wenn der Code nicht in einer einzelnen Zeile existieren kann (int i muss eine klare Instanziierungs-/Zuweisungsposition innerhalb des Methodenkörpers haben), muss label17 mit einem Anweisungsblock markiert werden.
Das richtige Format ist:
Kopieren Sie den Codecode wie folgt:
label17: {
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
wenn (Flagge)
Break label17;
0 zurückgeben;
}
oder:
Etikett17:
int i;
int j;
ThreadGroup[] arrayOfThreadGroup;
if (flag){
Break label17;
0 zurückgeben;}
Schauen wir uns eine falsche Verwendung an:
Kopieren Sie den Codecode wie folgt:
label13: int x = 0;
Offensichtlich gibt es nach der Bezeichnung einen standardmäßigen einzeiligen Anweisungsblock. Dieses x kann in Zukunft nicht mehr verwendet werden, Fehler. Die Tipps lauten wie folgt:
Mehrere Markierungen an dieser Linie
- x kann nicht in eine Variable aufgelöst werden
– Syntaxfehler beim Token „int“, löschen Sie dieses Token
Es gibt zwei korrekte Formate:
Kopieren Sie den Codecode wie folgt:
int x = 0;
label13: x = 0;
oder
label13:{ int x = 0;}
Deshalb habe ich vermutet, dass ein früheres Missverständnis darin bestand, dass in Verwendungen wie for(){} und if(){} logisches if() und Anweisungsblock {} zwei unabhängige Syntaxen sein sollten.