! PROGRAM P34 ! ! ! Reading and testing LOGICAL variables ! ! IMPLICIT NONE LOGICAL :: SINGLE CHARACTER (LEN=15) :: NAME INTEGER :: I,J,MARRGS ! PRINT *, 'This is Program >> P34 - Testing with LOGICAL data' ! ! READ DATA ! READ *,I ! L1: DO J=1,I READ * ,NAME,SINGLE IF(NAME == 'DONE')EXIT ! Leave the DO loop IF(SINGLE)THEN PRINT * ,NAME,'IS SINGLE' ELSE READ * ,MARRGS PRINT * ,NAME,'WAS MARRIED', & MARRGS,'TIMES' ! A continued line END IF END DO L1 ! The EXIT brings control to next statement STOP END PROGRAM P34DATA:
3 'Jane Simpson' T 'Mary Morrison' F 3 'DONE' TOUTPUT:
+--------------------------------------------------+ | 32-bit Power for Lahey Computer Systems | | Phar Lap's 386|DOS-Extender(tm) Version 7.0 | | Copyright (C) 1986-94 Phar Lap Software, Inc. | | Available Memory = 14880 Kb | +--------------------------------------------------+ This is Program >> P34 - Testing with LOGICAL data Jane Simpson IS SINGLE Mary Morrison WAS MARRIED 3TIMES
{$G256} {$P512} {$D+} PROGRAM p34 (input, output); VAR single_tmp : 0..1; marriages : INTEGER; single : BOOLEAN; name : STRING[15]; BEGIN readln (name, single_tmp ); WHILE (name <> 'done') DO BEGIN IF ( single_tmp=1 ) THEN single := TRUE; IF ( single_tmp=0 ) THEN single := FALSE; IF single THEN writeln ( name, 'is single') ELSE BEGIN readln ( marriages ); writeln ( name, 'was married ' , marriages, ' times') END; { end else } readln ( name, single_tmp ) END { end while } END.DATA:
Jane Simpson 1 Mary Morrison 0 3 done
Last modified: 08/07/97