Es gibt aus:
1000
Da der Test erst am Ende der Schleife durchgeführt wird, wird der Schleifenkörper zumindest einmal ausgeführt, egal wie die Bedingung lautet. Java schaut nicht "nach vorn" zur Bedingung, die getestet wird. Zuerst wird der Schleifenkörper ausgeführt, dann wird die Bedingung getestet um zu sehen, ob die Schleife erneut ausgeführt werden sollte.
int count = 1000; // initialisiere
do
{
System.out.println( count );
count++ ; // ändere
}
while ( count < 10 ); // teste
|
Es ist leicht fälschlicherweise anzunehmen,
dass der Schleifenkörper überhaupt nicht ausgeführt wird,
da count
mit 1000
beginnt und der Test
verlangt, dass count
kleiner 10
ist.
Aber Tatsache ist, der Schleifenkörper wird einmal ausgeführt und gibt i
aus.
Danach wird i
auf 1001
erhöht, bevor der Test durchgeführt wird.
Das könnte ein schwerer Bug sein.
Ihr werdet Stunden von Haare raufendem Debugging sparen, wenn Ihr Euch das folgende einprägt:
Der Schleifenkörper einer do
-Schleife
wird immer zumindest einmal ausgeführt.
Es gibt fast immer Situationen in denen ein Schleifenkörper auch nicht einmal ausgeführt werden sollte. Aus diesem Grund ist eine do
-Schleife fast immer eine unpassende Wahl.
(Denkfrage:) Was meint Ihr, Welche Schleifentyp ist eine gute Wahl für eine Zählschleife?