Continue ist ja nicht das Gegenteil von Break. Coninue ist im Grunde auch ein Break, aber nur für den Rest der Schleife ohne die Schleife als ganzes abzubrechen... oder?
Delphi-Quellcode:
procedure TForm1.ButtonSaufAbendClick(Sender: TObject);
const
BierImKasten = 24;
VertraegtBier = 6;
function WeiterSaufen( NachWievielBier : Integer) : Boolean;
var
Msg : String;
begin
Msg := Format('Willst Du nach %d Flaschen Bier weitersaufen?',[NachWievielBier]);
Result := MessageDlg(Msg,mtConfirmation,[mbYes,mbNo],0)=idYes;
end;
function KastenLeer(BierVerbraucht: Integer) : Boolean;
begin
Result := BierVerbraucht = BierImKasten;
end;
var
Bier, Leergut, Uebergeben, BierGekippt, BierIntus : Integer;
Msg : String;
begin
BierGekippt := 0;
BierIntus := 0;
Leergut := 0;
// Diese Schleife wird mit continue und break gesteuert
for Bier := 1 to BierImKasten do begin
BierGekippt := BierGekippt +1;
Leergut := Leergut +1;
if not KastenLeer(BierGekippt) and Weitersaufen(Bier) then Continue;
Uebergeben := BierGekippt div VertraegtBier;
BierIntus := BierGekippt mod VertraegtBier;
Break;
end;
Msg := 'Du hast noch %d Flaschen Bier im Kasten'#13+
'Du hast Dich %d x Übergeben.'#13+
'Du hast jetzt noch %d Flaschen Bier intus.';
ShowMessage(Format(Msg,[BierImKasten - Leergut, Uebergeben, BierIntus]));
end;
Ok, das Beispiel wurde etwas zu umfangreich um noch als verständliches Beispiel durchzugehen