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`来表示某条语句在满足
99``` fortran
1010program main
1111 implicit none
12- integer::angle=10
12+ integer::angle
13+ angle=10
1314 if (angle < 90) then
1415 write(*,*)"锐角"
1516 end if
@@ -29,17 +30,27 @@ $ fpm run
2930当有两个分支时,需要增加` else ` 语句或` else if ` 语句
3031
3132``` 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+ 直角
4354```
4455- ** 注意** ` else if ` 后面还有一个` then `
4556
@@ -48,14 +59,40 @@ end if
4859可以使用多个` else if ` 一直连接下去
4960
5061``` 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