流程控制语句
if的基本用法
if(逻辑表达式)then
...
... ! 当逻辑表达式为真时执行then代码块,否则执行end if之后的内容
...
end if
以上then代码块中如果只有一行程序代码,可以改写成下面的形式:
if(逻辑表达式) 一行表达式---------如:
if(a>3) a=a+1
if-else语句块
if(逻辑表达式)then
...
else
...
end if
下面利用该语句块写一个分段函数:
program main
C
implicit real*8(a-z)
real*8::x,f
C
if(x<-1)then
f=x**2+sin(x)
else
f=x**3-cos(x)
end if
C
print*,"please input a real number"
read(*,*)x
write(*,*)"the value of function is: ",f
end program main
多重判断if-elseif语句
if可以配合else-if来做多重判断,多重判断可以一次列出多个条件以及多个程序模块,但其中最多只有一个成立。也就是说每次最多只有一个程序块被执行。
if(条件1)then
...
elseif(条件2)then
...
elseif(条件3)then
...
...
else ! else这个条件模块可以省略,当前面都不成立时,才执行这个。
...
...
end if
面写一个简单的程序,要求给出一个人的工资,计算他应该纳多少税。
program main
!------------------------------program comment
! Description :这个小程序计算个人收入应上交税金
!---------------------------------------
! Version :V1.0
! Date :20160731
! Coding by :xiaodai
!-----------------------------------------
! Input parameter :wage,thr_ensure,house_pay,s_num
! Output parameter :tax,aftax
!-----------------------------------------
!
implicit real*8(a-z)
real*8::wage,temp,tax,aftax
! wage月工资,tax应纳税金,aftax税后工资
!假设这个城市的三险一金标准是养老保险8%、医疗保险2%、失业保险1%、住房公积金8%
!
print*,"请输入您的月工资"
read(*,*)wage
temp=wage*(1-0.08-0.02-0.01-0.08)-3500
!
if(temp<=0)then
tax=0
elseif(temp<=1500)then
tax=temp*0.03
elseif(temp<=4500)then
tax=1500*0.