2010-02-01 3 views
2

나는 fortran에서 코드를 분석 중이며 간단한 질문이 있습니다.에 대한 질문 fortran continue 문 for 루프에서

아래 코드에서 100과 200의 "continue"문이 무엇인지 알고 싶습니다.

i 카운터와 j 카운터가 증가합니까? 그렇다면 if(.not. flg) 조건에 루프의 flg의 "마지막 값"인 flg 값이 포함되어 있지 않습니까?

do 100 i = 1, N-1 
      flg = .false. 
      do 200 j = i+1, N 
       if("my condition") flg = .true. 
200   continue 

      if(.not. flg) then 
       ! do something here. 
      endif 
100 continue 

답변

4

포트란의 AFAIK, CONTINUE는 아무 작업도 수행하지 않습니다.

DO 루프 의미론의 편의를 위해서만 사용됩니다. 이것은 C와 유사하지 않습니다.

4

Th CONTINUE 문은 단순히 숫자 명령문 번호로 표시된 루프의 끝을 표시합니다. 아무 것도 증가시키지 않습니다. 확실히 코드에서 flg에 아무런 영향을주지 않습니다. 그 사용법에 대한 간단한 설명이 입니다.

+0

....... 감사합니다. 닐! – memC

2

이것은 오래된 포트란으로 일반적으로 사용되는 레이블이 지정된 continue 문을 사용하여 do 루프를 표시합니다. Fortran 90 및 이후 버전에서는 "end do"문을 제공합니다.

0

나는 지금 질문을 만났기 때문에 2010 년 2 월에 질문을 한 지 3 년이 넘은 후에 답변을하고 있는데 그 대답이 더 자세하고 완벽했을 것입니다. 실제로 논리 변수 flg는 레이블 j에 의해 지정된 내부 do 루프가 i = 1에서 N까지 (즉, 1의 각 값에 대해) 실행되기 때문에 루프 j = i + 1 ~ N에서 flg의 "최종 값"을 가져야한다. , N-1,1). "내 조건"이라는 조건은이 내적 루프를 다르게 만들어주지 않는 데 중요한 역할을해야합니다.