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

Lua表達式和控制結(jié)構(gòu)學(xué)習(xí)筆記

 更新時間:2014年12月15日 12:07:21   投稿:junjie  
這篇文章主要介紹了Lua表達式和控制結(jié)構(gòu)學(xué)習(xí)筆記,本文講解了算術(shù)操作符、關(guān)系操作符、邏輯操作符、局部變量與作用域、控制結(jié)構(gòu)等內(nèi)容,需要的朋友可以參考下

算術(shù)操作符

Lua 的算術(shù)操作符有:

"+"(加法):

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

print(1 + 2)

"-"(減法):

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

print(2 - 1)

"*"(乘法):

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

print(1 * 2)

"/"(除法):

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

print(1 / 2)

"^"(指數(shù)):

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

print(27^(-1/3))

"%"(取模):

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

print(5 % 3)

關(guān)系操作符

Lua 提供以下關(guān)系操作符:

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

< > <= >= == ~=

以上操作符返回的運算結(jié)果都是 true 或 false。字符串跟數(shù)字不可以進行比較

邏輯操作符

邏輯操作符有 and、or、not

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

print(1 and 2)
print(nil and 1)
print(false and 2)
print(1 or 2)
print(false or 5)

邏輯操作符將 false 和 nil 視為假,其它的為真。

局部變量與作用域

Lua 通過 local 語句來創(chuàng)建局部變量,局部變量的作用域僅限于聲明它們的那個塊。

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

local a, b = 1, 10
if a < b then
    print(a)
    local a
    print(a)
end
print(a, b)

用局部變量 local 保存全局變量,可以加速在當(dāng)前作用域中對全局變量的訪問。對于加速的效果,對比下面計算 斐波那契數(shù)列(Fibonacci)的執(zhí)行時間便知:

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

function fibonacci(n)
    if n < 2 then
        return n
    end
    return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

使用局部變量 local

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

local function fibonacci(n)
    if n < 2 then
        return n
    end
    return fibonacci(n - 2) + fibonacci(n - 1)
end
io.write(fibonacci(50), "\n")

控制結(jié)構(gòu)

if then elseif else end

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

if num == 1 then
    print(1)
elseif num == 2 then
    print(2)
else
    print("other")
end

Lua 不支持 switch 語句

while

先判斷 while 條件,如果條件為真,繼執(zhí)行循環(huán)體,否則結(jié)束

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

local i = 1
while a[i] do
    print(a[i])
    i = i + 1
end

repeat-until

先執(zhí)行一次循環(huán)體,再判斷條件,如果條件為真則退出循環(huán)體,否則繼續(xù)執(zhí)行循環(huán)體。類似其它語言的 do-while 語句,循環(huán)體至少會執(zhí)行一次

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

local a = 1
repeat
    a = a + 1
    b = a
    print(b)
until b < 10

for 循環(huán)

for 循環(huán)語句有兩種形式:數(shù)字型for(numeric for)、泛型for(generic for)

數(shù)字型 for 語法:

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

for start, end, step do
    doing something
end

start 是開始值,end 是結(jié)束值,step是步長(可選,默認為1)

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

for a = 10, 0, -2 do
    print(a)
end

泛型 for 循環(huán)通過一個迭代器(iterator)函數(shù)來遍歷所有值:

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

tab = { key1 = "val1", key2 = "val2", "val3" }
for k, v in pairs(tab) do
    if k == "key2" then
        break  
    end
    print(k .. " - " .. v)
end

break 和 return 語句用于跳出當(dāng)前執(zhí)行的塊。

相關(guān)文章

  • Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    Node.js數(shù)據(jù)流Stream之Duplex流和Transform流用法

    這篇文章介紹了Node.js數(shù)據(jù)流Stream之Duplex流和Transform流的用法,文中通過示例代碼介紹的非常詳細。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • node.js如何操作MySQL數(shù)據(jù)庫

    node.js如何操作MySQL數(shù)據(jù)庫

    這篇文章主要介紹了node.js如何操作MySQL數(shù)據(jù)庫,幫助大家更好的進行web開發(fā),感興趣的朋友可以了解下
    2020-10-10
  • Node.js一行代碼實現(xiàn)靜態(tài)文件服務(wù)器的方法步驟

    Node.js一行代碼實現(xiàn)靜態(tài)文件服務(wù)器的方法步驟

    這篇文章主要介紹了Node.js一行代碼實現(xiàn)靜態(tài)文件服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • nodejs前端自動化構(gòu)建環(huán)境的搭建

    nodejs前端自動化構(gòu)建環(huán)境的搭建

    本文這里給大家介紹的是nodejs中前端自動化構(gòu)建環(huán)境的搭建方法,非常的細致全面,有需要的小伙伴可以參考下
    2017-07-07
  • 在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp

    在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp

    Gulp是一個在使用上比Grunt更加簡潔的自動化工具(文中附有對比),和Node的npm包管理器配合使用非常方便,下面就記錄一下在Mac OS上安裝使用Node.js的項目自動化構(gòu)建工具Gulp的方法:
    2016-06-06
  • 使用Typescript和ES模塊發(fā)布Node模塊的方法

    使用Typescript和ES模塊發(fā)布Node模塊的方法

    這篇文章主要介紹了使用Typescript和ES模塊發(fā)布Node模塊的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 詳解如何修改 node_modules 里的文件

    詳解如何修改 node_modules 里的文件

    這篇文章主要介紹了詳解如何修改node_modules里的文件,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • node+vue實現(xiàn)用戶注冊和頭像上傳的實例代碼

    node+vue實現(xiàn)用戶注冊和頭像上傳的實例代碼

    本篇文章主要介紹了node+vue實現(xiàn)用戶注冊和頭像上傳的實例代碼,具有一定的參考價值,有興趣的可以了解一下
    2017-07-07
  • 深入理解Node內(nèi)建模塊和對象

    深入理解Node內(nèi)建模塊和對象

    在node核心中有些內(nèi)建模塊,使用這些模塊可以操作系統(tǒng),文件和網(wǎng)絡(luò),這篇文章主要介紹了深入理解Node內(nèi)建模塊和對象,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • node.js中的buffer.Buffer.isEncoding方法使用說明

    node.js中的buffer.Buffer.isEncoding方法使用說明

    這篇文章主要介紹了node.js中的buffer.Buffer.isEncoding方法使用說明,本文介紹了buffer.Buffer.isEncoding的方法說明、語法、接收參數(shù)、使用實例和實現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12

最新評論