在C和LUA中如何检查死循环,可以使用FOR循环吗?如何使用?谢谢~

在C和LUA中如何检查死循环,可以使用FOR循环吗?如何使用?谢谢~RT若能给出例子追加15分~,谢谢各位大虾帮助~... 在C和LUA中如何检查死循环,可以使用FOR循环吗?如何使用?谢谢~RT若能给出例子追加15分~,谢谢各位大虾帮助~ 展开
 我来答
yaoyue1019
2012-06-25 · 知道合伙人互联网行家
yaoyue1019
知道合伙人互联网行家
采纳数:804 获赞数:3392
擅长lua脚本 与android前端交互设计

向TA提问 私信TA
展开全部
for 循环在C中可能存在死循环
在lua里for不会存在死循环 你可以写一个例子
for i = 1,5 do
print(i)
end
会输出1 2 3 4 5
但是
for i = 1,-1 do
print(i)
end
就不会输出
这是一般型的for
如果是泛型for会有可能存在死循环
要检查死循环只能自己判断 比如做个计数器 循环大于10万次 则退出循环 并且抛出错误

local count = 0
while true do
dosomething()
count = count + 1
if count > 100000 then
error("无法退出的死循环")
end
另:不推荐楼上的方法 因为lua本身的设计就是不支持多线程的
end
mick1223
2012-07-02 · TA获得超过171个赞
知道答主
回答量:130
采纳率:100%
帮助的人:46万
展开全部
--[[Lua的话,for有3个参数:起始值、终止值、步进。
举个例子:--]]
for i = 1,-1 do
print(i)
end
--不会输出

for i = 1,-1,-1 do
print(i)
end

-->1
-->0
-->-1
--[[
只是做点补充。现在回答LZ死循环问题:
如果死循环的话,一般就是递归死循环和while死循环……至于r神马的一般不会用
while 布尔表达式 do
语句
end
所以只要检查一下布尔表达式【有木有可能】为false……如果不可能,那么就是死循环;
另一种例如function h() h() end不用管他,Lua该溢出时会溢出、
按检测时间来算,那就是
n=os.time()
循环体……
if os.time()-n>30 then break end
循环体……
--]]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
matlab2000
2012-06-23 · TA获得超过2323个赞
知道大有可为答主
回答量:1678
采纳率:100%
帮助的人:1051万
展开全部
应该不可以。因为死循环自己是检测不出来的。除非是在独立线程中,然后有主线程检查,但是如果主线程死循环,就无法检测了。一般操作系统也是根据一个程序占用太多cpu时间来判断的。
你问的这个问题有点像“停机问题”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式