단순 논리 IF 구문
IF (논리식) 실행문
(논리식)이 참이면 실행문이 실행되고, 거짓이면 넘어간다.
if (2.0 <= x .and. x <= 4.0) print *, x
이는 아래의 블럭 IF 문과 같다.
IF (논리식) THEN
문블럭
END IF
(논리식)이 참이면 문블럭이 실행되고, 거짓이면 넘어간다. 두 경우 모두 END IF 문 다음 부터 실행이 계속된다.
단순 if문의 경우, 문블럭에 다른 if문을 사용할 수 없다.
if (a >= 0) then
x = a * a
y = sqrt(a)
end if
블럭 IF 문 (일반적인 형태의 IF문)
IF (논리식) THEN
문블럭1
ELSE
문블럭2
END IF
(논리식)의 참, 거짓을 구별하여 명령문 수행.
논리식이 이 참이면 문블럭1만 실행되고, 거짓이면, 문블럭2만 실행됨. 두 경우 모두 END IF문 다음으로 실행이 이어짐.
Program test_if
implicit none
real :: a=1, b=2, c=3,d
d = b**2 – 4 * a* c
if ( d>=0 ) then
print*,’실근’
else
print*,’허근’
endif
End program test_if
IF-ELSE IF 구문
IF (논리식1) THEN
문블럭1
ELSE IF (논리식2) THEN
문블럭2
ELSE IF (논리식3) THEN
문블럭3
:
ELSE
문블럭n
END IF
주의! 들여쓰기를 통해서 if, else, end if 간의 혼돈을 줄여야 한다.
기명 IF 구문(named construct)
구문명 : IF (논리식) THEN
:
END IF 구문명
예)
outer: if (x > longer ) then
longer = x
y = longer * 2
inner: if (y < shorter) then
print *, " Short "
else
y = 2.0
end if innner
end if outer
연습문제
1. 다음 IF 문이 타당한지 결정하라.
- if(a>b) print*, a
- If b<c n= n+1
- If(x<=y) stop
- If(a=x) read*,y
- If(1<=N<=10) N= 10
2. 점수 (score)가 90점 이상이면 ’excellent’ 를, 80점 이상이면, ’good’을, 70점 이상이면 ’fair’를 70점 미만이면 “bad”를 출력하는 프로그램을 IF문을 사용하여 작성하시오.
3-5. 아래 IF문 실행 결과를 쓰시오.
3.
If ( x> 3 ) then
if ( x< 6 ) then
print*,’x:’,x
endif
endif
4.
If ( x<3) then
print*,’x:’,x
else if (x>6) then
print*,’x:’,x
endif
5.
If ( x<3) then
if ( x>6) then
print*,’x:’,x
endif
endif
6-8. 다음 순서도를 보고 코딩하라.
6.
7.
8.
9.