當指令碼只是一系列簡單命令序列的時候,乙個goto語句用起來會非常方便,比如可以這樣寫
--開始
print("這是1");
print("這是2");
goto("開始");
這是個無限迴圈,可以隨時跳轉,很方便,看起來也很清晰。
我基於luaplus實現了乙個,**如下:
/** /file cmdscript.h
* /brief 基於命令式的lua指令碼物件
* /author cloud
* /date 2010-3-15
*/#ifndef _cloud_cmd_script_h_
#define _cloud_cmd_script_h_
#include
#include
#include
#include
#include
using namespace luaplus;
class ccmdscript
;#endif
/** /file cmdscript.cpp
* /author cloud
* /date 2010-3-15
*/#include "cmdscript.h"
#include
uint winapi scriptthread(void* p);
int lua_print(luastate* state)
ccmdscript::ccmdscript():m_icurrline(1)
ccmdscript::~ccmdscript()
bool ccmdscript::register()
int ccmdscript::parsefile(std::string strfile)
file.close();
return m_mapline.size();
}std::string ccmdscript::dolinebyindex(int index)
int ccmdscript::lua_goto(luastate* state)
}//找到,就返回1,否則,返回0
state->pushinteger((int)bfound);
return 1;
}int ccmdscript::getnextlineindex()
int ccmdscript::getsumline()
bool ccmdscript::runfile(std::string strfile)
/** /brief 指令碼執行緒
*/uint winapi scriptthread(void* p)
return 0;
}寫個測試程式,
#include "cmdscript.h"
#pragma comment(lib,"luapluslib_1100.lib")
class myscript : public ccmdscript
~myscript(){}
virtual bool register();
};int myadd(int a,int b)
bool myscript::register()
int main(int argc,char** argv)
現在執行上面寫的指令碼
--開始
print("這是1");
print("這是2");
goto("開始");
這是個無限迴圈,vs2005 xp sp3 下測試通過。
在Lua中實現彙編中的跳轉語句Goto
當指令碼只是一系列簡單命令序列的時候,乙個goto語句用起來會非常方便,比如可以這樣寫 開始 print 這是1 print 這是2 goto 開始 這是個無限迴圈,可以隨時跳轉,很方便,看起來也很清晰。我基於luaplus實現了乙個,如下 file cmdscript.h brief 基於命令式的...
Python中的跳轉語句
上次我們說了 python 中的迴圈語句,而且還特別強調了,在寫迴圈的時候,一定要確保迴圈能夠退出,不然就成了死迴圈,那麼退出迴圈,其實是有三種方式的,第一種就是自然結束,比如上次說的,跑 5 圈,如果 5 圈跑完了,迴圈就自然退出了,除此之外,還有兩種,分別是跳過 continue 和結束 bre...
c 中的跳轉語句
1.goto語句 goto語句可以直接跳轉到程式中用標籤指定的另一行 標籤是乙個識別符號,後面跟乙個冒號 goto lable1 writeline 本行 不會執行 lable1 writeline 跳轉至本行 限制 1.不能跳轉到像for迴圈這樣的 塊中,也不能跳出類的範圍。2.不能退出try.c...