婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)

Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)

熱門(mén)標(biāo)簽:冀州市地圖標(biāo)注 地圖標(biāo)注大廈 清朝地圖標(biāo)注哈爾濱 百度地圖標(biāo)注早餐區(qū)域 個(gè)人怎么在地圖標(biāo)注需要的店鋪 武漢外呼防封系統(tǒng)多少錢(qián) 漳州智云呼電話機(jī)器人 新岸線智能電銷機(jī)器人 怎么去除地圖標(biāo)注

前言

學(xué)習(xí)一門(mén)語(yǔ)言,首先就是從最基本的語(yǔ)法開(kāi)始,這一篇將對(duì)Lua中的語(yǔ)句進(jìn)行概要的總結(jié)。

賦值

賦值的基本含義是修改一個(gè)變量或一個(gè)table中字段的值,這個(gè)和其它語(yǔ)言沒(méi)有多少區(qū)別,但是對(duì)于Lua,有一個(gè)特性,它允許“多重賦值”,也就是一下子將多個(gè)值賦予多個(gè)變量,例如以下代碼:

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

local x1, x2 = 2, 4
print(x1)     -->2
print(x2)     -->4

在多重賦值中,Lua先對(duì)等號(hào)右邊的所有元素求值,然后才執(zhí)行賦值,例如以下用法,可以非常簡(jiǎn)便的交換兩個(gè)元素的值:

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

local x1, x2 = 2, 4
x1, x2 = x2, x1
print(x1)     -->4
print(x2)     -->2

Lua總是會(huì)將等號(hào)右邊值得個(gè)數(shù)調(diào)整到與左邊變量的個(gè)數(shù)相一致,規(guī)則是:如果值得個(gè)數(shù)少于變量的個(gè)數(shù),那么多余的變量會(huì)被賦為nil;如果值得個(gè)數(shù)更多的話,那么多余的值會(huì)被忽略掉。

局部變量與塊

相對(duì)于全局變量,Lua同時(shí)也提供了局部變量。通過(guò)local語(yǔ)句來(lái)創(chuàng)建局部變量:

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

i = 10     -->全局變量
local i = 10     -->局部變量

在Lua中,局部變量也是有作用范圍的,也就是說(shuō),出了局部變量的作用范圍,局部變量就會(huì)失去作用,這個(gè)和C++等高級(jí)語(yǔ)言是一樣的道理。我們?cè)诰幊痰倪^(guò)程中,也可以使用do…end來(lái)顯示的聲明一個(gè)塊,例如以下代碼:

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

do
     local a1 = 10
     local a2 = 10
end          -->a1和a2的作用域到此結(jié)束

至于使用局部變量和全局變量,關(guān)系到編程風(fēng)格和實(shí)際需要,這里不做多說(shuō)。

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

幾乎所有的語(yǔ)言都有控制結(jié)構(gòu),同樣,對(duì)于Lua的控制結(jié)構(gòu)是非常簡(jiǎn)單的。Lua提供了用于條件執(zhí)行的if,循環(huán)的while、repeat和for。所有的控制結(jié)構(gòu)都有一個(gè)顯式的終止符:if、for和while以end作為結(jié)尾,repeat以u(píng)ntil作為結(jié)尾。特別注意,在Lua中是不支持switch結(jié)構(gòu)的。

if then else

if語(yǔ)句先測(cè)試其條件,然后根據(jù)測(cè)試結(jié)果執(zhí)行then部分或者else部分,else部分是可選的。如果要編寫(xiě)嵌套的if,可以使用elseif,下面通過(guò)代碼示例來(lái)說(shuō)明if的使用。

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

if a 0 then a = 0 end
if a b then retuan a else return b end
 
if op == "+" then
     r = a + b
elseif op == "-" then
     r = a - b
elseif op == "*" then
     r = a * b
elseif op == "/" then
     r = a / b
end

while

Lua中的while與其它語(yǔ)言是一樣的,示例代碼如下:

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

local a = 10
while a > 0 do
     a = a - 1
     -- Do something else
end

repeat

repeat就好比C++中的do…while結(jié)構(gòu),循環(huán)體至少會(huì)執(zhí)行一次。repeat-until語(yǔ)句重復(fù)執(zhí)行其循環(huán)體直到條件為真時(shí)結(jié)束。

在Lua中有兩種for語(yǔ)句的形式:數(shù)字型for和泛型for

數(shù)字型for

數(shù)字型for的語(yǔ)法如下:

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

for var = exp1, exp2, exp3 do
     -- Do something
end

var從exp1變化到exp2,每次變化都以exp3作為步長(zhǎng)進(jìn)行遞增,并執(zhí)行一次do…end之間的代碼。第三個(gè)表達(dá)式exp3是可選的,若不指定的話,Lua會(huì)將步長(zhǎng)默認(rèn)為1。例如以下代碼:

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

for var = 1, 10 do
     print(var)
end
 
for var = 10, 1, -1 do
     print(var)
end

在使用for時(shí),需要注意以下兩點(diǎn):

1.for的exp1,exp2和exp3,這三個(gè)表達(dá)式是在循環(huán)開(kāi)始前一次性求值得;并不會(huì)每次循環(huán)都進(jìn)行求值;

2.控制變量var會(huì)被自動(dòng)的聲明為for語(yǔ)句的局部變量,并且僅在循環(huán)體內(nèi)可見(jiàn)。

泛型for

泛型for循環(huán)通過(guò)一個(gè)迭代器函數(shù)來(lái)遍歷所有值。在Lua的基礎(chǔ)庫(kù)中提供了ipairs,這是一個(gè)用于遍歷數(shù)組的迭代器函數(shù)。從外觀上看泛型for比較簡(jiǎn)單,但其實(shí)它是非常強(qiáng)大的。通過(guò)不同的迭代器,幾乎可以遍歷所有的東西。標(biāo)準(zhǔn)庫(kù)提供了幾種迭代器,包括用于迭代文件中每行的io.lines、迭代table元素的pairs、迭代數(shù)組元素的ipairs和迭代字符串中單詞的string.gmatch等。當(dāng)然了,我們也可以編寫(xiě)自己的迭代器,在以后的文章中,我會(huì)總結(jié)如何編寫(xiě)迭代器的。

break與return

break和return語(yǔ)句用于跳出當(dāng)前的塊。這里的break、return和C++等語(yǔ)言是一樣的。break語(yǔ)句用于結(jié)束一個(gè)循環(huán),return語(yǔ)句用于從一個(gè)函數(shù)中返回結(jié)果。

您可能感興趣的文章:
  • Lua中基本的數(shù)據(jù)類型、表達(dá)式與流程控制語(yǔ)句講解
  • Lua中的控制結(jié)構(gòu)(流程控制)簡(jiǎn)明總結(jié)
  • Lua基礎(chǔ)教程之賦值語(yǔ)句、表達(dá)式、流程控制、函數(shù)學(xué)習(xí)筆記
  • Lua和C++的通信流程代碼實(shí)例
  • Lua和C++的通信流程分解
  • Lua中的變量和流控制入門(mén)學(xué)習(xí)
  • Lua表達(dá)式和控制結(jié)構(gòu)學(xué)習(xí)筆記
  • Lua流程控制語(yǔ)句if else的使用示例

標(biāo)簽:濰坊 儋州 金昌 宣城 德宏 臺(tái)灣 天門(mén) 天門(mén)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)》,本文關(guān)鍵詞  Lua,中的,基本,語(yǔ)法,控制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Lua中的基本語(yǔ)法、控制語(yǔ)句總結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 牟定县| 南安市| 梅州市| 桐城市| 阿城市| 札达县| 荥阳市| 定安县| 镇原县| 武夷山市| 德清县| 济源市| 潜江市| 玛曲县| 平舆县| 错那县| 绵阳市| 贡山| 吉木萨尔县| 衡南县| 吴川市| 花莲市| 贡觉县| 霍邱县| 和田市| 武强县| 乌兰县| 盐津县| 伊宁市| 柳林县| 竹北市| 上蔡县| 本溪市| 咸宁市| 吉隆县| 望谟县| 安岳县| 镇原县| 渝北区| 东台市| 昔阳县|