Skip to content

Commit 136023b

Browse files
authored
Update ch04-01-select.md
1 parent 49720bf commit 136023b

File tree

1 file changed

+45
-22
lines changed

1 file changed

+45
-22
lines changed

src/ch04-01-select.md

Lines changed: 45 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,56 @@
44

55
举例
66
``` fortran
7-
select case(move) ! move有wasd四种可能性
8-
case("w");write(*,*)"上" !使用;一行可以写多个语句,可读性更好
9-
case("a");write(*,*)"左"
10-
case("s");write(*,*)"下"
11-
case("d");write(*,*)"右"
12-
case default;write(*,*)"错误的方向" !默认的case,可以省略
13-
end select
7+
program main
8+
implicit none
9+
character(len=1)::move
10+
move="a"
11+
select case(move) ! move有wasd四种可能性
12+
case("w");write(*,*)"上" !使用;一行可以写多个语句,可读性更好
13+
case("a");write(*,*)"左"
14+
case("s");write(*,*)"下"
15+
case("d");write(*,*)"右"
16+
case default;write(*,*)"错误的方向" !默认的case,可以省略
17+
end select
18+
end program main
1419
```
20+
``` sh
21+
$ fpm run
22+
23+
```
24+
- 练习:尝试修改`move`的值,观察输出
1525

1626
同时,`case` 语句支持指定多个条件进行匹配,也支持范围
1727

1828
``` fortran
19-
!数字范围
20-
select case(i)
21-
case(1:9) ;write(*,*)"一位数"
22-
case(10:99);write(*,*)"两位数"
23-
end select
24-
!字符范围
25-
select case(c)
26-
case('a':'z') ;write(*,*)"小写字母"
27-
case('A':'Z') ;write(*,*)"大写字母"
28-
end select
29+
program main
30+
implicit none
31+
character(len=1)::c
32+
integer::i,j
33+
i=10
34+
c="W"
35+
j=7
36+
!数字范围
37+
select case(i)
38+
case(1:9) ;write(*,*)"一位数"
39+
case(10:99);write(*,*)"两位数"
40+
end select
41+
!字符范围
42+
select case(c)
43+
case('a':'z') ;write(*,*)"小写字母"
44+
case('A':'Z') ;write(*,*)"大写字母"
45+
end select
2946
30-
select case(i)
31-
case(2,3,5,7) ;write(*,*)"质数"
32-
case default ;write(*,*)"不是质数"
33-
end select
47+
select case(j)
48+
case(2,3,5,7) ;write(*,*)"质数"
49+
case default ;write(*,*)"不是质数"
50+
end select
51+
end program main
52+
```
53+
``` sh
54+
$ fpm run
55+
两位数
56+
大写字母
57+
质数
3458
```
35-
3659
- 不支持`1:4:2`这类范围

0 commit comments

Comments
 (0)