欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Lua中數(shù)字for循環(huán)實(shí)例

 更新時(shí)間:2015年04月23日 10:55:11   投稿:junjie  
這篇文章主要介紹了Lua中數(shù)字for循環(huán)實(shí)例,本文直接給出數(shù)字循環(huán)代碼示例,并探討了改變控制變量的一些問題,需要的朋友可以參考下

看以下代碼:

復(fù)制代碼 代碼如下:

for i=1,2 do 
  print(i) 
  i=3 
end 

輸出是什么?如果習(xí)慣了C/C++語言,會(huì)覺得因?yàn)楦淖兞丝刂谱兞縤為3,所以在執(zhí)行第二次循環(huán)體之前判斷不通過,所以輸出是1。
但結(jié)果輸出是1和2,即雖然改變了i,但循環(huán)還是執(zhí)行了2次。這是為什么呢?

看了lua的源代碼,發(fā)現(xiàn)在語法分析階段,表達(dá)式中的i(也叫控制變量)和循環(huán)體中的i并不是一個(gè)值,其實(shí)表達(dá)式中的i叫internal index,循環(huán)體中的i叫external index。

所以在循環(huán)體中并沒有改變表達(dá)式中的i的值。

至于為什么lua要這樣做,估計(jì)是為了安全吧,怕在循環(huán)體中不經(jīng)意地改變了表達(dá)式的i,從而產(chǎn)生bug。

另外,在Progammming in Lua一書中也提到不要在循環(huán)體內(nèi)修改控制變量(實(shí)際修改的是external index)的值,否則會(huì)有不可預(yù)知的結(jié)果。

相關(guān)文章

  • 詳解Lua中repeat...until循環(huán)語句的使用方法

    詳解Lua中repeat...until循環(huán)語句的使用方法

    這篇文章主要介紹了詳解Lua中repeat...until循環(huán)語句的使用方法,需要的朋友可以參考下
    2015-05-05
  • 詳解Lua中的變量相關(guān)知識(shí)點(diǎn)

    詳解Lua中的變量相關(guān)知識(shí)點(diǎn)

    這篇文章主要介紹了Lua中的變量相關(guān)知識(shí)點(diǎn),是Lua入門中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Openresty服務(wù)器使用lua腳本寫的Hello World簡(jiǎn)單實(shí)例

    Openresty服務(wù)器使用lua腳本寫的Hello World簡(jiǎn)單實(shí)例

    這篇文章主要介紹了Openresty服務(wù)器使用lua腳本寫的Hello World簡(jiǎn)單實(shí)例,OpenResty (也稱為 ngx_openresty)是一個(gè)全功能的 Web 應(yīng)用服務(wù)器。它打包了標(biāo)準(zhǔn)的 Nginx 核心,很多的常用的第三方模塊,以及它們的大多數(shù)依賴項(xiàng),需要的朋友可以參考下
    2015-04-04
  • Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例

    Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例

    這篇文章主要介紹了Linux下編寫Lua擴(kuò)展so文件和調(diào)用方法實(shí)例,本文給出C語言代碼、編譯SO文件、Lua中調(diào)用代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • lua文件操作詳解

    lua文件操作詳解

    Lua中關(guān)于文件處理操作是本文要介紹的內(nèi)容,主要是來了解并學(xué)習(xí)lua中文件的相關(guān)操作,具體內(nèi)容的實(shí)現(xiàn)來看本文詳解。
    2016-03-03
  • Lua簡(jiǎn)介、編譯安裝教程及變量等語法介紹

    Lua簡(jiǎn)介、編譯安裝教程及變量等語法介紹

    這篇文章主要介紹了Lua簡(jiǎn)介、編譯安裝教程及變量等語法介紹,本文同時(shí)講解了lua注釋語法、Lua命令行方式等內(nèi)容,需要的朋友可以參考下
    2014-10-10
  • Lua中實(shí)現(xiàn)面向?qū)ο蟮囊环N漂亮解決方案

    Lua中實(shí)現(xiàn)面向?qū)ο蟮囊环N漂亮解決方案

    這篇文章主要介紹了Lua中實(shí)現(xiàn)面向?qū)ο蟮囊环N漂亮解決方案,本文給出實(shí)現(xiàn)代碼、使用方法及代碼分析,需要的朋友可以參考下
    2015-01-01
  • 簡(jiǎn)單談?wù)刲ua和c的交互

    簡(jiǎn)單談?wù)刲ua和c的交互

    要理解Lua和C++交互,首先要理解Lua堆棧。簡(jiǎn)單來說,Lua和C/C++語言通信的主要方法是一個(gè)無處不在的虛擬棧。棧的特點(diǎn)是先進(jìn)后出。
    2016-01-01
  • Lua與C語言間的交互實(shí)例

    Lua與C語言間的交互實(shí)例

    這篇文章主要介紹了Lua與C語言間的交互實(shí)例,本文主要講解了Lua中調(diào)用C語言的方法和例子,需要的朋友可以參考下
    2014-12-12
  • Lua中的迭代器淺析

    Lua中的迭代器淺析

    這篇文章主要介紹了Lua中的迭代器淺析,本文先是講解了什么是迭代器,然后給出了自己寫一個(gè)迭代器的示例,最后介紹了迭代器的調(diào)用方法,需要的朋友可以參考下
    2014-09-09

最新評(píng)論