2016-02-04 10 views
6

Es gibt viele Option für Endlosschleife aber meist sind while(true) or for(;;)Java: Endlos-Schleife

verwenden Ich weiß while(true) die beste Option ist, da es leichter zu verstehen ist.

Aber ich möchte for(;;) verwenden.

Ich möchte wissen, was innerhalb von for loop vorgeht, wenn ich zwei ; in for-Schleife verwendet.

for(;;)

Semikolons bedeutet, seine eine leere Anweisung. Aber wie funktioniert es, wenn wir innerhalb von for loop für unendliche Ausführung verwenden?

+2

Ich kenne die Antwort auf diese Frage nicht. Aber ich weiß, wie ich darauf antworten kann. Ich würde ein einfaches Java-Programm mit dem Konstrukt kompilieren und dann mit einem Decompiler wie javap untersuchen. Ich wäre nicht überrascht, wenn 'while (true)' und 'for (;;)' denselben Byte-Code erzeugen. Ich wäre auch nicht überrascht, wenn sie sich unterscheiden. – emory

+0

@Shiladittya bitte in Betracht ziehen, meine Antwort zu akzeptieren, wenn es Ihre Frage gelöst hat. Wenn nicht, würde ich gerne weiter ausführen – Idos

Antwort

3

Dieses, was passiert: for(;;)

for (initialization statement; condition check; increment/decrement) 
    // loop body; 

mit:

  • Es gibt keine Initialisierung.
  • Es gibt keine Zustandsprüfung.
  • Es gibt kein Inkrement/Dekrement.

Daher wird es für immer laufen, genau wie while(true).