【发布时间】:2018-03-23 17:34:22
【问题描述】:
我正在尝试创建一个 while 循环,该循环将持续循环,直到用户在命令行输入。
我已经尝试过两种实现方式,第一种,第一种源自python。问题是每次要遍历循环时都必须输入除 exit 之外的其他内容。
global active
active = true;
while active == true
userInput = input('enter: ','s');
inputHandler(userInput)
disp(rand)
pause(1);
end
function inputHandler(value)
global active
if value == 'exit'
active = false;
end
end
第二个是
global loopFlag
loopFlag = true
while loopFlag == true
%some awesome code happens here
end
您的想法是您可以在代码执行时在命令行输入loopFlag = false 并且它会停止。
我知道这可以通过使用toggle button 来完成,但除非绝对必要,否则我宁愿不必走那条路。
【问题讨论】:
-
那么第一个实现有什么问题?
-
@LuisMendo 您必须在每次想要循环时输入一些内容。我需要循环自行运行,直到它看到来自命令行的输入
-
除了
input,我不知道命令窗口检测按键的方法,正如您所见,它会在等待输入时停止程序执行。您也许可以创建一个图形并设置其'WindowKeyPressFcn',以便将其UserData从true 更改为false。程序中的while循环将是while get(figureHandle,'UserData')
标签: matlab while-loop infinite-loop