Fortran的do while 和matlab的 while if break用法一样吗
比如 Fortran中有
do while(t<t0)
!执行语句
end
matlab 中有
while t<t0
if t>=t0
break
%执行语句
end
这两种用法一样吗
谢谢回答
Fortran的do while 和matlab的 while if break用法一样吗
比如 Fortran中有
do while(t<t0)
!执行语句
end
matlab 中有
while t<t0
if t>=t0
break
%执行语句
end
这两种用法一样吗
谢谢回答
同学你好!matlab和fortran都有do while语句,而且都有两种用法:一种是判断语句放在while后面,表示当什么样的条件就执行循环体内部的语句,不满足就退出循环;另一种是直接while后面直接加真值1(true),而退出语句放在循环体中,用if条件引导,只要满足if条件里面的内容,就退出循环,要是没有退出语句,那么这种while循环容易变成死循环。(注意:第二种的退出语句matlab和fortran的不一样,matlab是break,fortran是exit;而且matlab循环时while...end,fortran是do while...enddo)
下面fortran和matlab各举几个例子(都是1加到100):
Matlab
(1)判断条件在while后面
i = 1;
s = 0;
while(i<=100)%满足条件执行循环,不满足退出循环
s = s + i;
i= i+1;
end
disp(s)
(2)判断条件在循环体内部
i = 1;
s = 0;
while(true) % true一直满足所以这个地方不会导致循环退出
s = s + i;
i= i+1;
if(i>100)%当满足条件后直接退出循环
break;
end
end
disp(s)
Fortran
(1)判断条件在while后面
program main
implicit none
integer:: s, i
s = 0
i = 1
do while(i<=100)!满足时进入循环体,不满足就退出
s = s + i
i = i + 1
enddo
write(*,*)s
read(*,*)
end
(2)判断条件在循环体内部
program main
implicit none
integer:: s, i
s = 0
i = 1
do while(.true.) ! .true.一直满足所以这个地方不会导致循环退出
s = s + i
i = i + 1
if(i>100)then !满足时退出
exit
endif
enddo
write(*,*)s
read(*,*)
end