File tree Expand file tree Collapse file tree 1 file changed +60
-23
lines changed Expand file tree Collapse file tree 1 file changed +60
-23
lines changed Original file line number Diff line number Diff line change @@ -9,7 +9,8 @@ Fortran中使用条件语句`if(<condition>)then`来表示某条语句在满足
9
9
``` fortran
10
10
program main
11
11
implicit none
12
- integer::angle=10
12
+ integer::angle
13
+ angle=10
13
14
if (angle < 90) then
14
15
write(*,*)"锐角"
15
16
end if
@@ -29,17 +30,27 @@ $ fpm run
29
30
当有两个分支时,需要增加` else ` 语句或` else if ` 语句
30
31
31
32
``` fortran
32
- if (angle < 90) then
33
- write(*,*)"锐角"
34
- else
35
- write(*,*)"不是锐角"
36
- end if
37
- !
38
- if (angle < 90) then
39
- write(*,*)"锐角"
40
- else if(angle == 90) then
41
- write(*,*)"直角"
42
- end if
33
+ program main
34
+ implicit none
35
+ integer::angle
36
+ angle=90
37
+ if (angle < 90) then
38
+ write(*,*)"锐角"
39
+ else
40
+ write(*,*)"不是锐角"
41
+ end if
42
+ !
43
+ if (angle < 90) then
44
+ write(*,*)"锐角"
45
+ else if(angle == 90) then
46
+ write(*,*)"直角"
47
+ end if
48
+ end program main
49
+ ```
50
+ ``` sh
51
+ $ fpm run
52
+ 不是锐角
53
+ 直角
43
54
```
44
55
- ** 注意** ` else if ` 后面还有一个` then `
45
56
@@ -48,14 +59,40 @@ end if
48
59
可以使用多个` else if ` 一直连接下去
49
60
50
61
``` fortran
51
- if (angle < 90) then
52
- write(*,*)"锐角"
53
- else if(angle == 90) then
54
- write(*,*)"直角"
55
- else if(angle < 180) then
56
- write(*,*)"钝角"
57
- else if(angle == 180) then
58
- write(*,*)"平角"
59
- end if
60
- ```
61
- - Fortran中的if语句并没有短路机制,所以例如` if( n < 11 .and. a(n) > 1) ` 这样的语法并不能保证a(n)的下标不会越界
62
+ program main
63
+ implicit none
64
+ integer::angle
65
+ angle=120
66
+ if (angle < 90) then
67
+ write(*,*)"锐角"
68
+ else if(angle == 90) then
69
+ write(*,*)"直角"
70
+ else if(angle < 180) then
71
+ write(*,*)"钝角"
72
+ else if(angle == 180) then
73
+ write(*,*)"平角"
74
+ end if
75
+ end program main
76
+ ```
77
+ ``` sh
78
+ $ fpm run
79
+ 钝角
80
+ ```
81
+ - Fortran中的if语句** 并没有短路机制** ,所以例如` if( n <= 10 .and. a(n) > 1) ` ,数组a的大小为10,这样的语法并不能保证在运行时不出错。
82
+ ``` fortran
83
+ program main
84
+ implicit none
85
+ integer::a(10)
86
+ integer::i
87
+ i=11
88
+ a=2
89
+ if (i<=10 .and.a(i)>1)then
90
+ write(*,*)"hello"
91
+ end if
92
+ end program main
93
+ ```
94
+ ``` sh
95
+ $ fpm run
96
+ At line 7 of file app/main.f90
97
+ Fortran runtime error: Index ' 11' of dimension 1 of array ' a' above upper bound of 10
98
+ ```
You can’t perform that action at this time.
0 commit comments