1

我正在尝试使用 DO 逐行读取文件并读取以操作各个行。但是,无论我看到什么我不想要的东西,我都会尝试跳过一行。

这是我到目前为止所拥有的:

DO J=1,10000
  READ(1,'(A150)') ROW
  IF (J==A(1)+1 .AND. ROW(17:17)=='|') THEN
    WRITE(2, '(A)') ROW(1:12) // ROW(15:150)
  ELSEIF (J>A(1) .AND. J<A(2) .AND. ROW(1:1)=='#') THEN
  ! Here's where I need to skip J and go onto J+1 and then continue the DO loop from there
  END IF
END DO

我该怎么做?

4

1 回答 1

3

使用CYCLE

DO J=1,10000
  READ(1,'(A150)') ROW
  IF ((J==A(1)+1) .AND. (ROW(17:17).EQ.'|')) THEN
    WRITE(2, '(A)') ROW(1:12) // ROW(15:150)
  ELSEIF (J.GT.A(1) .AND. J.LT.A(2) .AND. ROW(1:1)=='#') THEN
    CYCLE
  END IF
  ! More statements here
END DO

正如 Hristo 所指出的,CYCLE只有在IF ... END IF.

于 2012-08-02T20:51:41.850 回答