主题:[讨论]关于Fortran中IF的一个用法。
看老的Fortran代码发现了IF的一个用法,写了测试代码如下:
PROGRAME test1
IMPLICIT NONE
INTEGER :: iIn
WRITE(*,*)"输入一个整数"
READ(*,*) iIn
IF(iIn) 100,200,300
100 WRITE(*,*) "您输入的不是0!"
200 WRITE(*,*) "您输入的是0!"
300 WRITE(*,*) "Stop"
STOP
END PROGRAME test1
结果是:
输入正数,打印:
Stop;
输入负数,打印:
您输入的不是0!
您输入的是0!
Stop ;
输入0,打印:
您输入的是0!
Stop ;
和我开始想的仅判断0与非0的不太一样。编译器是IVF2011,其他编译器没有测试。如果判断语句是IF(iIn/=0),则打印正常。不知是不是IF的这个用法就是这样默认的?
PROGRAME test1
IMPLICIT NONE
INTEGER :: iIn
WRITE(*,*)"输入一个整数"
READ(*,*) iIn
IF(iIn) 100,200,300
100 WRITE(*,*) "您输入的不是0!"
200 WRITE(*,*) "您输入的是0!"
300 WRITE(*,*) "Stop"
STOP
END PROGRAME test1
结果是:
输入正数,打印:
Stop;
输入负数,打印:
您输入的不是0!
您输入的是0!
Stop ;
输入0,打印:
您输入的是0!
Stop ;
和我开始想的仅判断0与非0的不太一样。编译器是IVF2011,其他编译器没有测试。如果判断语句是IF(iIn/=0),则打印正常。不知是不是IF的这个用法就是这样默认的?