Recursion Labview中的递归-是什么导致它挂起?

Recursion Labview中的递归-是什么导致它挂起?,recursion,labview,Recursion,Labview,背景:作为背景,我一直在努力学习LabVIEW,并希望将英文字符串翻译成摩尔斯电码。根据另一篇文章的建议,我已经用for循环解决了这个问题,但我想知道为什么我的递归方法不起作用。我想解决这个问题的方法是将字符串分为第一个项和其他项,然后对照大小写选择器检查该项,查找与所需摩尔斯电码值匹配的字母。然后,字符串的其余部分将成为VI再次运行的输入,导致收集所有字符串的输出。请参阅附件代码:在图像中,代码以高亮显示执行模式运行。外壳图的真实情况(当input1为空时)仅返回空字符串常量。递归调用(VI)

背景:作为背景,我一直在努力学习LabVIEW,并希望将英文字符串翻译成摩尔斯电码。根据另一篇文章的建议,我已经用for循环解决了这个问题,但我想知道为什么我的递归方法不起作用。我想解决这个问题的方法是将字符串分为第一个项和其他项,然后对照大小写选择器检查该项,查找与所需摩尔斯电码值匹配的字母。然后,字符串的其余部分将成为VI再次运行的输入,导致收集所有字符串的输出。请参阅附件代码:在图像中,代码以高亮显示执行模式运行。外壳图的真实情况(当input1为空时)仅返回空字符串常量。递归调用(VI)如图所示:忽略输出(这是我在没有任何输入的情况下运行代码时得到的结果(因此第一个用例图中的真实情况发生)。我只是有点困惑为什么我的程序无限期运行,这促使我猜测无限递归-但我没有得到这样的错误(例如达到最大深度)。我真的很好奇如何递归地解决这个问题,并认为我的真实情况(当字符串为空时)可能会在其中起到一定作用,因此为了完成,我将其包括在这里:感谢您的帮助!

我复制了您的代码,如上所示,它似乎可以毫无顾虑地完成其循环


我能想到的唯一一件事是,这实际上不是一个代码问题,而是一个操作员问题。当您运行代码时,您是使用“运行”还是“连续运行”?

我只是按了“运行”,可能是我错误地连接了VI。小提示:在运行代码之前,按CTRL+U重新排列程序中的图标,这样会更容易阅读!哇,这实际上让我的最新项目更容易准备