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

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日
  • 展开全部

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?