|
4 | 4 |
|
5 | 5 | 举例
|
6 | 6 | ``` 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 |
14 | 19 | ```
|
| 20 | +``` sh |
| 21 | +$ fpm run |
| 22 | + 左 |
| 23 | +``` |
| 24 | +- 练习:尝试修改`move`的值,观察输出 |
15 | 25 |
|
16 | 26 | 同时,`case` 语句支持指定多个条件进行匹配,也支持范围
|
17 | 27 |
|
18 | 28 | ``` 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 |
29 | 46 |
|
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 | + 质数 |
34 | 58 | ```
|
35 |
| - |
36 | 59 | - 不支持`1:4:2`这类范围
|
0 commit comments