Fortran入门教程(五)——选择结构

选择结构

1. If

1.1 if-end

输入一个学生成绩,如果及格则输出“及格”。

!> program: 5-1
program one_if_demo
    implicit none
    integer :: score
    write(*, *) "输入成绩>>>"
    read(*, *) score

    if (score >= 60) then
        write(*, *) "及格"
    end if
end program

代码中可以看到, if 语句的基本语法结构为

if (condition) then
    ...
end if

用括号括起来的为条件语句, 如果该条件语句的值为真,则会进入IF分支并运行内部代码。

1.2 if-else

输入一个学生成绩,如果及格则输出“及格”,否则输出不及格

!> program: 5-2
program if_else_demo
    implicit none
    integer :: score
    write(*, *) "输入成绩>>>"
    read(*, *) score

    if (score >= 60) then
        write(*, *) "及格"
    else
        write(*, *) "不及"
    end if

end program

代码中可以看到, if-else 语句的基本语法结构为

if (condition) then
    ...
else
    ...
end if

1.3 if-elseif-else

输入一个学生的成绩,如果分数超过100分或低于0分输出“超出范围”,60分以上输出“及格”,否则输出“不及格”。

!> program: 5-3
program if_demo
    implicit none
    integer :: score
    write(*, *) "输入成绩>>>"
    read(*, *) score
    if (score > 100 .or. score < 0) then
        write(*, *) "超出范围"
    else if (score >= 60) then
        write(*, *) "及格"
    else
        write(*, *) "不及"
    end if
end program

代码中可以看到, if-else 语句的基本语法结构为

if (condition) then
    ...
else if (condition)
    ...
else
    ...
end if

程序会首先判定第一个if是否成立,如果成立则进入该if语句,如果不成立则会进下一个if
判断,如此反复。直到结束。

2. Select case 语句

基本表达式为:

select case (expression)
case (condition1)
    ...
case (condition2)
    ...
case default
    ...
end select

例如,用select case语句实现上面的程序

!> program: 5-4
program select_demo
    implicit none
    integer :: score
    write(*, *) "输入成绩>>>"
    read(*, *) score
    select case (score)
    case (101:)
        write(*, *) "超出范围"
    case (:-1)
        write(*, *) "超出范围"
    case (60: 100)
        write(*, *) "及格"
    case (0: 59)
        write(*, *) "不及格"
    end select
end program

说明:

  1. select caseend selectcase结构的入口和出口,必须成对出现。
  2. case语句中的控制表达式类型可以是整型、逻辑型或字符型,但不可以用实型或 复型表达式。
  3. case选择表达式必须与CASE控制表达式的类型一致。
  4. case块可多可少,可以省略。
  5. case default语句应不多于一条,并应放在所有CASE语句之后。
  6. 当CASE控制表达式是整数时,可以有多种表示法。比如:
    • case(1):当选择表达式的值为1时,执行相应的语句块。
    • case(1,3,5):当选择表达式的值为1、3或者5时,执行相应的语句块。
    • case(1:10): 当选择表达式的值为1~10时,执行相应的语句块
  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sumbrella_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值