while(true){}

henpara

Bekanntes Mitglied
Hallo,
mir ist öfter schon aufgefallen, daß leute im Programm
Java:
while(true){
//anweisung(en)
}
benutzen.

Ist das guter Stil, hat man Alternativen?
Ich wäre bisher nie im Leben auf so eine Art von Anweisung zu kommen, ist ja auch eig. wie ne Endlosschleife oder nicht?
Würd mich über n bischen Aufklärung freuen.

mfg

Edit: Unsinn gelöscht, Fragestellung korrigiert *schäm und thx @Civilazi
 
Zuletzt bearbeitet:

mariusbopp

Bekanntes Mitglied
naja da steht ja quasie "solange es zutrifft mache"
und wenn dieser zustand sich nicht in der schleife ändert ist es eine endlosschleife!
aber im regelfall hat man eine änderung ;)
 
B

bone2

Gast
naja es gibt einfach services oder server programme die ewig laufen sollen. eine programm das eine queue regelmäßig abarbeiten soll zb.

anbieten würde sich aber trotzdem dann irgendwas einzubaun, damit man es stoppen kann ohne den server herunterzufahren. zb ein lockfile, das man vorher erstellt, nachher löscht und bei jedem durchlauf einmal auf existenz prüft. löscht man die datei manuell stopp die schleife
 

Marco13

Top Contributor
Das macht in machen Fällen Sinn, z.B. bei einem Daemon-Thread der ewig im Hintergrund laufen soll, oder wenn die Abbruchbedingung für die Schleife ... nicht "schön" in den Schleifenkopf passt. Z.B. bei sowas wie
Code:
String line = null;
while (true)
{
    line = bufferedReader.readLine();
    if (line == null) 
    {
        break;
    }
    machWasMit(line);
}

Das KANN man zwar auch in eine Zeile schreiben
[c]while ((line=bufferedReader.readLine()) != null) { ... }[/c]
aber ich finde ersteres übersichtlicher...
 

mariusbopp

Bekanntes Mitglied
Das macht in machen Fällen Sinn, z.B. bei einem Daemon-Thread der ewig im Hintergrund laufen soll
warum häää??

edit: ^^ okay ich glaub ich weiß wieso häääh... also ich hatte das so gemeint das manche dinge dauerhaft laufen müssen sollen wie aich immer aber trotzdem noch eine ""hintertür" zum ausstieg haben sollte (abruchbedingung) hääh geklärt oder immernoch häh:D
 
Zuletzt bearbeitet:

frostbyte

Aktives Mitglied
Jede embedded software wird mit while(true) laufen - die einzige Abbruchbedingung ist "power off" und das muss man sicher nicht codieren

Naja, wenn sie keinen Ausstiegspunkt hat, dann wird sie vielleicht mitten in einer Transaktion den TERM Befehl ignorieren und dann plötzlich kurz vor dem Speichern durch den KILL zum beenden gezwungen werden. Dann doch lieber erst nach der Transaktion beenden.
 

Landei

Top Contributor
Wenn es wirklich "ewig" läuft wie z.B. bei einem Server, finde ich das OK, aber die Variante mit break oder return mittendrin würde ich möglichst vermeiden, insbesondere wenn die Schleife etwas länger ist.
 

Nicer

Bekanntes Mitglied
ein Break ist ja sozusagen ein Harter ausstieg aus der schleife , wird break aufgerufen wird die schleife nicht zuende gerechnet und dann schön beendet sondern an dieser stelle bricht sie einfach ab. leider leider gibts in java ja kein goto :&
 

frostbyte

Aktives Mitglied
naja, ob du in die Schleife C, break, A, B reinschreibst oder in eine normale Schleife mit Abbruchbedingung einfach A, B, C ist doch egal.

Und goto ist wohl bei gutem Programmierstil komplett überflüssig, bei OO und mehreren Threads würde das wahrscheinlich auch schwer werden den Durchblick zu behalten.
 

Empire Phoenix

Top Contributor
also genau genommen ist break doch ein goto.. wenn man sich das ganze mal auf bytecode anguckt.

Und es gibt einige Sachen wo sich das schon anbietet, bei einer langen schleife mit 5 verschiedeen abbruchbedingungen die voneinander abhängig will ich den code mal sehen

while true{
B = blaA
if b == null break
C= blaB
if C==null break
blaC
}

oder


while notdone{
B = blaA
if b == null notdone = false
if b != null {
c = blaB
if c == null notdone = false
if(c =! null{
blaC
}
}

bei sowas darf man sich schon streiten was besser lesbar ist
 

Noctarius

Top Contributor
In Bytecode ist vieles ein Goto (z.B. jeder Jump, jedes Try/Catch usw), trotzdem sollte man das in Java Sourcecode möglichst außen vorlassen :)
 

Zerker

Mitglied
Java:
break <marke>
is in vielen des gleiche wie
Code:
goto
.

an TO:
Java:
while(true)
{
    ; //Anweisungen
}

true -> die bedingung jeder schleife in java ist ein ausdruck. ausdrücke geben einen wahrheitswert zurück (boolean). daher ist es praktisch hier true zu nehmen, damit das programm unendlich lange läuft. (in java)

man könnte auch:


Java:
int i = 1;

while(i == 1) // liefert true zurück -> boolsch
{

}

falls der wert vom ausdruck true is, wird der rumpf ausgeführt.
falls der wert false is, dann eben nicht.

in c(++) kriegt man eben kein boolschen wert, sondern eine 1 oder 0.

das würd in c(++) gehn:

Code:
while(1) //liefert 1 zurück -> int
{
    ; //Anweisung
}


das hab ich heute zufällig in der Insel gelesen, die ich gestern gekauft hab^^


Greetings,
Zerker.

edit: hoppala, da hab ich mir grad selber widersprochen^^
 
Zuletzt bearbeitet:

frostbyte

Aktives Mitglied
@Zerker: Das ist absolut korrekt (bis auf das, was XHelp angemerkt hat). Du könntest auch [c]while (($i = 1) == 1)[/c] eine beliebige Funktion dort einsetzen.

Das Problem mit [c]while (1)[/c] ist, dass
Code:
1
ein int ist, während dort ein boolean erwartet wird. In C und PHP ist das kein Akt, da ein int auf einen boolean gewandelt wird. Letztlich ist dort die
Code:
1
ein [c]while (1 != 0)[/c]. So könntest du das dann auch in Java machen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Break Sprungmarken Problem einer While True in While True Java Basics - Anfänger-Themen 6
M Erste Schritte while boolean=false läuft nur bei true??? Java Basics - Anfänger-Themen 23
G while (true) ? wodurch wird diese Schleife beendet? Java Basics - Anfänger-Themen 6
DrahtEck Arrays und While-Loop Java Basics - Anfänger-Themen 50
C Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
S Erste Schritte While Schleifen Java Basics - Anfänger-Themen 11
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
Say do-While Code Ausführung Java Basics - Anfänger-Themen 3
Say do-while Syntak Java Basics - Anfänger-Themen 3
G Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
W Wiederkehrende Konsolen-Anzeige mit do-While?! Java Basics - Anfänger-Themen 33
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Brauche ich while != -1, wenn ich immer einen BufferedReader verwende? Java Basics - Anfänger-Themen 8
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
G while.next() Verständnisfrage Java Basics - Anfänger-Themen 16
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
D Array mit while-schleife Java Basics - Anfänger-Themen 12
B do while Schleife Java Basics - Anfänger-Themen 3
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
Poppigescorn Quersumme Berechnen mit einer While Schleife Java Basics - Anfänger-Themen 13
Zwanglos Warum wird nur die erste Zeile im while Block ausgeführt? Java Basics - Anfänger-Themen 8
M Wie kann ich Werte die in einer While Schleife sind weiter genutzt werden? Java Basics - Anfänger-Themen 7
H Kann eine while-Schleife ein Programm blockieren? Java Basics - Anfänger-Themen 8
O Methode in while-Schleife aufrufen geht nur beim ersten Mal Java Basics - Anfänger-Themen 2
A Wie schaffe ich das eine while Schleife addiert danach subtrahirt? Java Basics - Anfänger-Themen 1
Aeon Erste Schritte Preise berechnen mit do-while Java Basics - Anfänger-Themen 9
J for /while Schleife Java Basics - Anfänger-Themen 5
A While Schleife - buubelsort methode Java Basics - Anfänger-Themen 2
J Wie kann ich hier eine While schleife einbauen? Java Basics - Anfänger-Themen 3
S While-Schleife geht in Endlosschleife über, warum? Java Basics - Anfänger-Themen 6
M While-Schleifen-Fehler Java Basics - Anfänger-Themen 4
S Do-While-Schleife Java Basics - Anfänger-Themen 2
S While Schleife Java Basics - Anfänger-Themen 4
S Do-While Schleife Java Basics - Anfänger-Themen 6
J Von While zu for Java Basics - Anfänger-Themen 42
G While/If Programm Java Basics - Anfänger-Themen 2
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
CptK Methoden While-Schleife so lange ausführen, wie Methode etwas zurückgibt Java Basics - Anfänger-Themen 2
G Flussdiagramm-Do while Java Basics - Anfänger-Themen 4
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
B Verschachtelung von For-Schleife in While Schleife Java Basics - Anfänger-Themen 14
G while schleife Java Basics - Anfänger-Themen 11
G while schleife mit array Java Basics - Anfänger-Themen 12
L Scanner schließen in While-Schleife? Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
G While schleife Java Basics - Anfänger-Themen 2
mor16Euro Erste Schritte Wie nennt man eine While oder For schleife die nie Ausgeführt wird Java Basics - Anfänger-Themen 5
C Verständnisfrage bezüglich der Do-While Schleife Java Basics - Anfänger-Themen 9
B OOP While Schleife läuft Endlos durch externen aufruf Java Basics - Anfänger-Themen 2
N while Schleife wird nicht beendet, obwohl Sie hätte breaken sollen Java Basics - Anfänger-Themen 4
B mehrere Werte mit scanner und while schleife einlesen, max berechnen bzw addieren Java Basics - Anfänger-Themen 2
D While Schleife bei Bedarf durch Eingabe stoppen Java Basics - Anfänger-Themen 15
O Erste Schritte Zahlendreieck mit While Java Basics - Anfänger-Themen 2
A Erste Schritte while-Schleife Java Basics - Anfänger-Themen 38
W While-Loop unterbrechen Java Basics - Anfänger-Themen 4
X While Do schleife funtioniert nicht Java Basics - Anfänger-Themen 5
J 2 "while"-Anweisungen in einer do-Schleife? Java Basics - Anfänger-Themen 4
W while Schleife und Bedingung Java Basics - Anfänger-Themen 11
T While Schleife funktioniert nicht Java Basics - Anfänger-Themen 14
J Input/Output Strings aneinander reihen mit while schleife Java Basics - Anfänger-Themen 25
M Methoden while liefert nur den ersten Datensatz Java Basics - Anfänger-Themen 12
S Try-Catch in Verwendung einer while Schleife Java Basics - Anfänger-Themen 2
P a cannot be resolved bei einer do while Schleife Java Basics - Anfänger-Themen 1
J While Schleife Java Basics - Anfänger-Themen 19
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
Z Return in While-Schleife Java Basics - Anfänger-Themen 7
N Methode mit While-Schleife und If-Bedingung und Array-Initialisierung Java Basics - Anfänger-Themen 4
V Erste Schritte Habe Fragen zu der For und While Schleife als auch Inkrement und Dekrement Java Basics - Anfänger-Themen 4
helldunkel While Schleife trotz false Java Basics - Anfänger-Themen 4
E Threads Thread in While-Schleife nur einmal starten Java Basics - Anfänger-Themen 2
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
b1ck while-Schleife Java Basics - Anfänger-Themen 10
b1ck Integer initialisieren bei do-while-Schleife Java Basics - Anfänger-Themen 11
kilopack15 DoWhile-Schleife als While-Schleife darstellen Java Basics - Anfänger-Themen 9
A While-Schleife funktioniert nicht! Java Basics - Anfänger-Themen 33
A Verständnisproblem Ausgabe Do-While-Schleife Java Basics - Anfänger-Themen 3
E Alphabet mit einer while Schleife ausgeben Java Basics - Anfänger-Themen 3
I Mehre While-Schleifen hintereinander Java Basics - Anfänger-Themen 13
T while schleife starten , beeneden und wieder Starten Java Basics - Anfänger-Themen 8
W Verständnis Probleme bei der while-Schleife und continue Java Basics - Anfänger-Themen 21
F Reached end while parsing Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben