gpt4 book ai didi

while-loop - 为什么我的 LabView while 循环似乎执行了太多次?

转载 作者:行者123 更新时间:2023-12-01 00:56:22 30 4
gpt4 key购买 nike

几周后,我将加入一个(目前)使用 LabView 进行开发的项目。为了在这种情况发生之前至少让自己有点熟悉,我一直在该软件的试用版中创建一些简单的项目。有人挑战我编写一个简单的程序,它可以在不使用除法运算符的情况下执行简单的除法。

我已经成功地编写了程序,但我的主要内容 while循环似乎运行了太多次。这是我的程序:

program image

用户输入一个被除数和除数,程序会不断地从被除数中减去除数,直到被除数变为 <= 0,此时它应该中断。程序成功运行,但是当循环最终停止时,被除数总是等于小于 0 的 x(其中 x 是除数的任何数字)。在调试应用程序时,我发现了问题,当最后一次进行循环比较时,红利将等于 0 并评估为“假”,但是循环内的代码在循环中断前最后一次执行。这是我对 do-while 循环的期望,但不是简单的 while。

只是为了向自己证明这不是我写的(希望是)明显的逻辑错误(我认为是)an equivalent program in python这正是我所期望的。

我花了很长时间在谷歌上搜索,盯着它,我什至在纸上做了,但我不明白为什么它没有达到我的预期。是什么赋予了?

最佳答案

LabVIEW根据dataflow principle执行它的代码这意味着循环不能停止,直到它执行完其中的所有代码。这是NI document确认上述内容(参见第一个流程图)。此外,减法和比较是同时发生的。

您拥有的代码在很大程度上等效于(除了与 0 的比较发生在线路中的临时值上):

dividend = YYY
divisor = XXX

dividend = dividend - divisor
while dividend > 0:
dividend = dividend - divisor

如果您真的要进入 LabVIEW,我强烈建议您避免使用局部变量。很多时候(包括这一次)他们很糟糕。改为这样做:

enter image description here

这是一个片段,因此如果您从资源管理器中拖动此文件并将其放到 BD 上,它将显示为一段代码 (LV2014)。

关于while-loop - 为什么我的 LabView while 循环似乎执行了太多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27576320/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com