Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Wozu ist halt;


Andi1982 - Mo 18.11.02 12:55
Titel: Wozu ist halt;
Hallo,
ich habe jetzt schon in mehereren Programmen gesehen dass am Ende einer For-Schleife halt; steht.
z.B.

Quelltext
1:
2:
3:
FOR i := 1 TO 100 DO   
  IF... THEN Break;
halt;


Aber warum macht man da nicht

Quelltext
1:
2:
3:
4:
FOR i := 1 TO 100 DO   
 BEGIN
           ....
 END;

????

Gruß Andi


Delete - Mo 18.11.02 13:11

Das halt aus deinem ersten Code-Auszug gehört nicht mehr zur for-Schleife. Besteht der Schleifenrumpf aus nur einer Anweisung kann das begin und end weggelassen werden. Manche Programmierer setzen es trotzdem, sei es wegen der bessere Übersichtlichkeit oder damit sie es bei einer späteren Erweiterung des Codes nicht vergessen.

halt beendet eine Anwendung. Aus der Delphi-Hilfe:
Zitat:

Initiates abnormal termination of a program.

Wärend hingegen break aus einer Schleife springt und den da nach folgenden Code ausführt:
Zitat:

Causes the flow of control to exit a for, while, or repeat statement.


Kuck in deinem Buch noch mal bei den Schleifen nach und schlag halt und break auch noch mal in der Hilfe oder in deinem Buch nach.


Andi1982 - Mo 18.11.02 13:16

Ah ja, stimmt, auf das mit der For-Schleife hätt ich eigentlich selber drauf kommen können.

Vielen Dank für die schnelle Antwort!


AndyB - Mo 18.11.02 18:49

Luckie hat folgendes geschrieben:
halt beendet eine Anwendung. Aus der Delphi-Hilfe:
Zitat:

Initiates abnormal termination of a program.


Wobei die Betonung auf abnormal liegt.


Anonymous - Mo 18.11.02 21:46


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

initialization
  ShowMessage('Nicht überall ist "Halt" die abnormalle Art.');
  ShowMessage('"Close" funktioniert hier zum Beispiel nicht.');
  ShowMessage('Der Grund ist, daß Close out of Formular ist.');
  ShowMessage('"Halt" ist einfach die Pascal Methode und ...');
  ShowMessage('sollte da eingesetzt werden wo nur Pascal ist');
  ShowMessage(';-)');
  Halt;
end.


Dann gibts noch die Windowsmetode.