[fpc-pascal] Legitimate use of for and break

wkitty42 at windstream.net wkitty42 at windstream.net
Sun Jun 18 13:19:47 CEST 2023


On 6/17/23 2:07 PM, Travis Siegel via fpc-pascal wrote:
> This is interesting, because it's the first time I've ever seen "break" as a 
> valid command in pascal, and I've been using pascal since the mid/late 80s.  All 
> kinds of dialects too, and I've never seen break as a keyword.  C, Python, Perl, 
> sure, even shell scripts, but pascal? Never seen it used before.  Is this a 
> relatively new addition to fpc or something?

the Break keyword first appeared in Turob/Borland Pascal 7.0 along with the 
Continue keyword... to refresh my memory, i searched the various reference 
manuals for TP/BP versions... the first one that did not have "break" as part of 
CheckBreak, CBreak, and similar was TP/BP 7.0...


http://bitsavers.informatik.uni-stuttgart.de/pdf/borland/turbo_pascal/Turbo_Pascal_Version_7.0_Language_Guide_1992.pdf

page 86:

If the number of repetitions is known beforehand, the for statement is the 
appropriate construct. Otherwise, the while or repeat statement should be used.

The Break and Continue standard procedures can be used to control the flow of 
repetitive statements: Break terminates a repetitive statement, and Continue 
continues with the next iteration of a repetitive statement. For more details on 
these standard procedures, see Chapter I, "Library reference," in the 
Programmer's Reference.


http://www.bitsavers.org/pdf/borland/turbo_pascal/Turbo_Pascal_Version_7.0_Programmers_Reference_1992.pdf

page 15:

Break procedure                                           System
-------------------------------------------------------------------------
        Purpose   Terminates a for, while, or repeat statement.

    Declaration   procedure Break;

        Remarks   Break exits the innermost enclosing for, while, or repeat
                  statement immediately. Break is analogous to a goto statement
                  addressing a label just after the end of the innermost
                  enclosing repetitive statement. The compiler reports an error
                  if Break is not enclosed by a for, while, or repeat statement.

       See also   Continue, Exit, Halt

        Example
                  var S: string;
                  begin
                    while True do
                    begin
                      Readln(S);
                      if S = '' then Break;
                      Writeln(S);
                    end;
                  end.




-- 
  NOTE: No off-list assistance is given without prior approval.
        *Please keep mailing list traffic on the list where it belongs!*


More information about the fpc-pascal mailing list