【发布时间】:2015-04-10 02:33:15
【问题描述】:
我有一个 uitable 和一个函数,一旦用户单击相应的行,它就会返回项目的 id。 id 也是一个全局变量,因为它用于各种函数。 这个想法是我创建一个数组,其中包含用户从 uitable 中选择的所有项目,当单击保存播放列表时终止。前任。如果用户连续选择 id 为 5、7、9 的项目,然后单击“保存播放列表”按钮,我希望数组保持
5 7 9
我认为最好的方法是使用 while 循环。 while 循环应该检查是否单击了保存按钮。我有一个全局变量,一旦程序进入“保存播放列表”按钮回调函数就会改变。
问题在于,一旦用户选择了一个 ID,数组就会继续迭代,直到用户选择另一个 ID,并且会继续迭代等等,直到单击保存按钮。例如:用户点击 ID 5,数组将记录 55555555555555... 重复出现,直到用户点击 ex。 ID 7:555555555555557777777777,因为程序不断循环和循环而没有暂停。
代码如下:
while (keeprunning)
idvec = [idvec id];
end
keeprunning 是一个全局变量,在开启函数中初始化为 1。在“保存播放列表”回调函数中改为0。
我想通过引入一个名为“itemselected”的新全局变量来解决此问题,该变量在打开函数中初始化为 1,并在每次调用单元格选择回调时再次更改为 1。在 while 循环中将 ID 添加到数组后,此变量将重置为 0。
这个想法是循环应该在没有点击“保存播放列表”按钮时进行迭代(由 keeprunning 全局变量控制)但是程序不应该让 while 循环迭代,直到用户点击另一行,即直到单元格再次调用选择回调函数。
我需要这样的东西,但这不起作用(无限循环)。还是有其他建议??
while (keeprunning || trackselected)
idvec = [idvec id];
trackselected = 0;
end
提前谢谢你
【问题讨论】:
标签: matlab loops while-loop callback infinite