Einlese-Schleifen II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

Minimum.om
   LOOP
      Read.Int(value); (* try to read a value *)
      IF Streams.stdin.count = 0 THEN EXIT END;
      (* value is well-defined now *)
      IF ~mindefined OR (value < min) THEN
         (* new minimum found *)
         min := value; mindefined := TRUE;
      END;
   END;

*Lese-Operationen wie Read.Int können wie erhofft funktionieren oder auch fehlschlagen.
 
*Ein Read.Int schlägt beispielsweise fehl, wenn die Eingabe beendet ist oder ein Buchstabe anstatt einer Ziffernfolge eingegeben wird.
 
*Die externe Variable Streams.stdin.count ist vom Typ INTEGER und ist 0, falls die letzte Einlese-Operation von der Standard-Eingabe (Streams.stdin) nicht erfolgreich war --- aus welchem Grunde auch immer. Andernfalls ist sie positiv.
 
*Wenn der Erfolg von Lese-Operationen überprüft werden soll, ist folgender genereller Schleifenaufbau sinnvoll:

LOOP
      Leseoperation
      IF Leseoperation nicht erfolgreich THEN EXIT END;
      Eingelesenen Wert verarbeiten
END
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 2004, 2005 Andreas Borchert, in HTML konvertiert am 18.02.2005