Fortran语法之流程控制
本期内容是有关【条件判断】和【循环控制】的代码讲解和小练习,供大家在枯燥无聊的学习生活可以添点开心,找点乐子!
上期要点回顾
一、条件判断
If (逻辑表达式) Then ! 后面跟语法块
……
……
End If
If (逻辑表达式) ! 后面只能写一句语法内容
沙雕代码示例
program cond_test
Implicit None
Character(len = 10) :: U , I
write(* , '(A)') '请问先生,你是否愿意这个女人成为你的妻子与她缔结婚约?无论疾病还是健康,无论贫穷还是富有,或任何其他理由,都爱她,照顾她,尊重她,接纳她,永远对她忠贞不渝直至生命尽头?请输入 是 或 否。'
read(* , *) U
write(* , '(A)') '请问女士,你是否愿意这个男子成为你的丈夫与他缔结婚约?无论疾病还是健康,无论贫穷还是富有,或任何其他理由,都爱他,照顾他,尊重他,接纳他,永远对他忠贞不渝,直至生命尽头?请输入 是 或 否。'
read(* , *) I
If (trim(I) == trim(U)) Then ! trim用来删去多余的空格,以方便比较。
print * , '祝福你们!愿你们白头偕老幸福美满!'
else
print * , '╮(╯-╰)╭,祝你们二位早日遇见真爱。'
End If
end program cond_test
运行结果图:
注意事项
补充:
①带署名的IF(是代码更具有结构性、可读性)
②select case
二、循环
【注】第1种格式是对 i 执行100次操作;第2种格式是在指定条件满足的情况下一直执行下去,直到条件不再满足为止
代码实例:
program xun_huan_test
Implicit None
Integer :: start_time, end_time, rate
Integer :: count = 0
call system_clock(start_time, rate) ! 获取当前时间
Do
print *, '周老师别卷啦!'
count = count + 1
call system_clock(end_time) ! 获取当前时间
if (end_time - start_time >= 10 * rate) exit ! 运行10秒后退出
End Do
end program xun_huan_test
运行结果:
注意事项
三、Fortran 77的替代