是要热爱美好的呀 2021-09-02 23:17 采纳率: 93.1%
浏览 248
已结题

Fortran的do while . 和matlab的 while if .break用法一样吗

Fortran的do while 和matlab的 while if break用法一样吗
比如 Fortran中有

do while(t<t0)
!执行语句
end

matlab 中有

while t<t0
if t>=t0
break
%执行语句
end

这两种用法一样吗
谢谢回答

  • 写回答

1条回答 默认 最新

  • joel_1993 2021-09-03 08:53
    关注

    同学你好!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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏

报告相同问题?

问题事件

  • 系统已结题 9月11日
  • 已采纳回答 9月3日
  • 修改了问题 9月2日
  • 修改了问题 9月2日
  • 展开全部

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料