A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
67
Task/Loops-Continue/Fortran/loops-continue-2.f
Normal file
67
Task/Loops-Continue/Fortran/loops-continue-2.f
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
C WARNING: This program is not valid ANSI FORTRAN 77 code. It uses
|
||||
C one nonstandard character on the line labelled 5001. Many F77
|
||||
C compilers should be okay with it, but it is *not* standard.
|
||||
C
|
||||
C It is also worth noting that FORTRAN 77 uses the command CONTINUE,
|
||||
C but not in the semantic, looping sense of the word. In FORTRAN,
|
||||
C CONTINUE means "do absolutely nothing." It is a placeholder. If
|
||||
C anything, it means "continue to the next line."
|
||||
C
|
||||
C Python does the same thing with `pass`; C and its family of
|
||||
C languages, with `{/* do nothing */}`. Write CONTINUE when you need
|
||||
C to write something but have nothing to write.
|
||||
C
|
||||
C This page on Rosetta Code is about a very different "continue"
|
||||
C statement that tells a loop to go back to the beginning. In
|
||||
C FORTRAN, we use (you guessed it!) a GOTO to accomplish this.
|
||||
PROGRAM CONTINUELOOP
|
||||
INTEGER I
|
||||
|
||||
DO 10 I = 1, 10
|
||||
C Is it five or ten?
|
||||
IF (MOD(I, 5) .EQ. 0) THEN
|
||||
C If it is, write a newline and no comma.
|
||||
WRITE (*,5000) I
|
||||
|
||||
C Continue the loop; that is, skip to the end of the loop.
|
||||
GOTO 10
|
||||
ENDIF
|
||||
|
||||
C Write I with a comma and no newline.
|
||||
WRITE (*,5001) I
|
||||
|
||||
C Again, in this case, CONTINUE is completely unrelated to the
|
||||
C semantic, looping sense of the word.
|
||||
10 CONTINUE
|
||||
|
||||
STOP
|
||||
|
||||
C This will print an integer and a newline (no comma).
|
||||
5000 FORMAT (I3)
|
||||
|
||||
C Standard FORTRAN 77 is completely incapable of completing a
|
||||
C WRITE statement without printing a newline. If you want to print
|
||||
C five integers in standard code, you have to do something like
|
||||
C this:
|
||||
C
|
||||
C FORMAT (I3, ',', I3, ',', I3, ',', I3, ',', I3)
|
||||
C
|
||||
C Writing `1, 2, 3, 4, 5` and then `6, 7, 8, 9, 10` to that format
|
||||
C would produce the following two lines:
|
||||
C
|
||||
C 1, 2, 3, 4, 5
|
||||
C 6, 7, 8, 9, 10
|
||||
C
|
||||
C However, this code exists to demonstrate continuing a FORTRAN 77
|
||||
C loop and not to demonstrate how to get around its rigidity about
|
||||
C newlines.
|
||||
C
|
||||
C The dollar sign at the end of the format is a nonstandard
|
||||
C character. It tells the compiler not to print a newline. If you
|
||||
C are actually using FORTRAN 77, you should figure out what your
|
||||
C particular compiler accepts. If you are actually using Fortran
|
||||
C 90 or later, you should replace this line with the commented
|
||||
C line that follows it.
|
||||
5001 FORMAT (I3, ',', $)
|
||||
C5001 FORMAT (I3, ',', ADVANCE='NO')
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue