精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

LUA腳本語言入門之Lua程序設計初步

移動開發 iOS
LUA腳本語言入門之Lua程序設計初步是本文要介紹的內容,在這篇文章中,我想向大家介紹如何進行Lua程序設計。一起來看內容。

LUA腳本語言入門之Lua程序設計初步是本文要介紹的內容,在這篇文章中,我想向大家介紹如何進行Lua程序設計。我假設大家都學過至少一門編程語言,比如Basic或C,特別是C。因為Lua的最大用途是在宿主程序中作為腳本使用的。

Lua 的語法比較簡單,學習起來也比較省力,但功能卻并不弱。

在Lua中,一切都是變量,除了關鍵字。請記住這句話。

首先是注釋

寫一個程序,總是少不了注釋的。

在Lua中,你可以使用單行注釋和多行注釋。

單行注釋中,連續兩個減號"--"表示注釋的開始,一直延續到行末為止。相當于C++語言中的"//"。

多行注釋中,由"--[["表示注釋開始,并且一直延續到"]]"為止。這種注釋相當于C語言中的"/*…*/"。在注釋當中,"[["和"]]"是可以嵌套的。

Lua編程

經典的"Hello world"的程序總是被用來開始介紹一種語言。在Lua中,寫一個這樣的程序很簡單:

  1. print("Hello world") 

在Lua中,語句之間可以用分號";"隔開,也可以用空白隔開。一般來說,如果多個語句寫在同一行的話,建議總是用分號隔開。

Lua 有好幾種程序控制語句,如:

條件控制:if 條件 then … elseif 條件 then … else … end

While循環:while 條件 do … end

Repeat循環:repeat … until 條件

For循環:for 變量 = 初值,終點值,步進 do … end

For循環:for 變量1,變量2,… ,變量N in表或枚舉函數 do … end

注意一下,for的循環變量總是只作用于for的局部變量,你也可以省略步進值,這時候,for循環會使用1作為步進值。

你可以用break來中止一個循環。

如果你有程序設計的基礎,比如你學過Basic,C之類的,你會覺得Lua也不難。但Lua有幾個地方是明顯不同于這些程序設計語言的,所以請特別注意。

語句塊

語句塊在C++中是用"{"和"}"括起來的,在Lua中,它是用do 和 end 括起來的。比如:

  1. do print("Hello") end 

你可以在 函數 中和 語句塊 中定局部變量。

賦值語句

賦值語句在Lua被強化了。它可以同時給多個變量賦值。

例如:

  1. a,b,c,d=1,2,3,4 

甚至是:

a,b=b,a -- 多么方便的交換變量功能啊。

在默認情況下,變量總是認為是全局的。假如你要定義局部變量,則在第一次賦值的時候,需要用local說明。比如:

local a,b,c = 1,2,3 -- a,b,c都是局部變量

數值運算

和C語言一樣,支持 +, -, *, /。但Lua還多了一個"^"。這表示指數乘方運算。比如2^3 結果為8, 2^4結果為16。

連接兩個字符串,可以用".."運處符。如:

  1. "This a " .. "string." -- 等于 "this a string" 

比較運算

  1. = == ~= 

分別表示 小于,大于,不大于,不小于,相等,不相等

所有這些操作符總是返回true或false。

對于Table,Function和Userdata類型的數據,只有 == 和 ~=可以用。相等表示兩個變量引用的是同一個數據。比如:

  1.     a={1,2}  
  2.     b=a 
  3.     print(a==b, a~=b) -- true, false  
  4.     a={1,2}  
  5.     b={1,2}  
  6.     print(a==b, a~=b) -- false, true 

邏輯運算

and, or, not

其中,and 和 or 與C語言區別特別大。

在這里,請先記住,在Lua中,只有false和nil才計算為false,其它任何數據都計算為true,0也是true!

and 和 or的運算結果不是true和false,而是和它的兩個操作數相關。

a and b:如果a為false,則返回a;否則返回b

a or b:如果 a 為true,則返回a;否則返回b

舉幾個例子:

  1.      print(4 and 5) --> 5  
  2.      print(nil and 13) --> nil  
  3.      print(false and 13) --> false  
  4.      print(4 or 5) --> 4  
  5.      print(false or 5) --> 5 

在Lua中這是很有用的特性,也是比較令人混洧的特性。

我們可以模擬C語言中的語句:x = a? b : c,在Lua中,可以寫成:x = a and b or c。

最有用的語句是: x = x or v,它相當于:if not x then x = v end 。

運算符優先級,從高到低順序如下:

  1.     ^  
  2.     not - (一元運算)  
  3.      * /      + -  
  4.      ..(字符串連接)  
  5.       = ~= ==  
  6.      and  
  7.      or 

#p#

關鍵字

關鍵字是不能做為變量的。Lua的關鍵字不多,就以下幾個:

  1.   and break do else elseif  
  2.   end false for function if  
  3.   in local nil not or  
  4.   repeat return then true until while 

變量類型

怎么確定一個變量是什么類型的呢?大家可以用type()函數來檢查。Lua支持的類型有以下幾種:

Nil 空值,所有沒有使用過的變量,都是nil。nil既是值,又是類型。

Boolean 布爾值

Number 數值,在Lua里,數值相當于C語言的double

String 字符串,如果你愿意的話,字符串是可以包含'\0'字符的

Table 關系表類型,這個類型功能比較強大,我們在后面慢慢說。

Function 函數類型,不要懷疑,函數也是一種類型,也就是說,所有的函數,它本身就是一個變量。

Userdata 嗯,這個類型專門用來和Lua的宿主打交道的。宿主通常是用C和C++來編寫的,在這種情況下,Userdata可以是宿主的任意數據類型,常用的有Struct和指針。

Thread 

線程類型,在Lua中沒有真正的線程。Lua中可以將一個函數分成幾部份運行。如果感興趣的話,可以去看看Lua的文檔。

變量的定義

所有的語言,都要用到變量。在Lua中,不管你在什么地方使用變量,都不需要聲明,并且所有的這些變量總是全局變量,除非,你在前面加上"local"。

這一點要特別注意,因為你可能想在函數里使用局部變量,卻忘了用local來說明。

至于變量名字,它是大小寫相關的。也就是說,A和a是兩個不同的變量。

定義一個變量的方法就是賦值。"="操作就是用來賦值的

我們一起來定義幾種常用類型的變量吧。 1、

Nil 正如前面所說的,沒有使用過的變量的值,都是Nil。有時候我們也需要將一個變量清除,這時候,我們可以直接給變量賦以nil值。如:

var1=nil -- 請注意 nil 一定要小寫 2、Boolean

布爾值通常是用在進行條件判斷的時候。布爾值有兩種:true 和 false。在Lua中,只有false和nil才被計算為false,而所有任何其它類型的值,都是true。比如0,空串等等,都是true。不要被C語言的習慣所誤導,0在Lua中的的確確是true。你也可以直接給一個變量賦以Boolean類型的值,如:

  1.     varboolean = true 

3、Number

在Lua中,是沒有整數類型的,也不需要。一般情況下,只要數值不是很大(比如不超過100,000,000,000,000),是不會產生舍入誤差的。在很多CPU上,實數的運算并不比整數慢。

實數的表示方法,同C語言類似,如:

  1.     4 0.4 4.57e-3 0.3e12 5e+20 

4、String

字符串,總是一種非常常用的高級類型。在Lua中,你可以非常方便的定義很長很長的字符串。

字符串在Lua中有幾種方法來表示,最通用的方法,是用雙引號或單引號來括起一個字符串的,如:

  1. "This is a string." 

和C語言相同的,它支持一些轉義字符,列表如下:

  1.     \a bell  
  2.     \b back space  
  3.     \f form feed  
  4.     \n newline  
  5.     \r carriage return  
  6.     \t horizontal tab  
  7.     \v vertical tab  
  8.     \\ backslash  
  9.     \" double quote  
  10.     \' single quote  
  11.     \[ left square bracket  
  12.     \] right square bracket 

由于這種字符串只能寫在一行中,因此,不可避免的要用到轉義字符。加入了轉義字符的串,看起來實在是不敢恭維,比如:

  1. "one line\nnext line\n\"in quotes\", 'in quotes'" 

一大堆的"\"符號讓人看起來很倒胃口。如果你與我有同感,那么,我們在Lua中,可以用另一種表示方法:用"[["和"]]"將多行的字符串括起來,如:

  1.     page = [[  
  2.         An HTML Page  
  3.         Lua  
  4.         [[a text between double brackets]]  
  5.     ]] 

值得注意的是,在這種字符串中,如果含有單獨使用的"[["或"]]"就仍然得用"\["或"\]"來避免歧義。當然,這種情況是極少會發生的。

#p#

5、Table

關系表類型,這是一個很強大的類型。我們可以把這個類型看作是一個數組。只是C語言的數組,只能用正整數來作索引;在Lua中,你可以用任意類型來作數組的索引,除了nil。同樣,在C語言中,數組的內容只允許一種類型;在Lua中,你也可以用任意類型的值來作數組的內容,除了nil。

Table的定義很簡單,它的主要特征是用"{"和"}"來括起一系列數據元素的。比如:

  1.     T1 = {} -- 定義一個空表  
  2.     T1[1]=10 -- 然后我們就可以象C語言一樣來使用它了。  
  3.     T1["John"]={Age=27, Gender="Male"}  
  4.     這一句相當于:  
  5.     T1["John"]={} -- 必須先定義成一個表,還記得未定義的變量是nil類型嗎  
  6.     T1["John"]["Age"]=27  
  7.     T1["John"]["Gender"]="Male"  
  8.     當表的索引是字符串的時候,我們可以簡寫成:  
  9.     T1.John={}  
  10.     T1.John.Age=27 
  11.     T1.John.Gender="Male" 
  12.     或  
  13.     T1.John{Age=27, Gender="Male"} 

這是一個很強的特性。

在定義表的時候,我們可以把所有的數據內容一起寫在"{"和"}"之間,這樣子是非常方便,而且很好看。比如,前面的T1的定義,我們可以這么寫:

  1.     T1=  
  2.     {  
  3.       10, -- 相當于 [1] = 10  
  4.       [100] = 40,  
  5.       John= -- 如果你原意,你還可以寫成:["John"] =  
  6.       {  
  7.         Age=27, -- 如果你原意,你還可以寫成:["Age"] =27  
  8.         Gender=Male -- 如果你原意,你還可以寫成:["Gender"] =Male  
  9.       },  
  10.       20 -- 相當于 [2] = 20  
  11.     } 

看起來很漂亮,不是嗎?我們在寫的時候,需要注意三點:

第一,所有元素之間,總是用逗號","隔開;

第二,所有索引值都需要用"["和"]"括起來;如果是字符串,還可以去掉引號和中括號;

第三,如果不寫索引,則索引就會被認為是數字,并按順序自動從1往后編;

表類型的構造是如此的方便,以致于常常被人用來代替配置文件。是的,不用懷疑,它比ini文件要漂亮,并且強大的多。

6、Function

函數,在Lua中,函數的定義也很簡單。典型的定義如下:

  1. function add(a,b) -- add 是函數名字,a和b是參數名字  
  2. return a+b -- return 用來返回函數的運行結果  
  3. end 

請注意,return語言一定要寫在end之前。假如你非要在中間放上一句return,那么請寫成:do return end。

還記得前面說過,函數也是變量類型嗎?上面的函數定義,其實相當于:

  1. add = function (a,b) return a+b end 

當你重新給add賦值時,它就不再表示這個函數了。你甚至可以賦給add任意數據,包括nil (這樣,你就清除了add變量)。Function是不是很象C語言的函數指針呢?
和C語言一樣,Lua的函數可以接受可變參數個數,它同樣是用"…"來定義的,比如:

  1. function sum (a,b,…) 

如果想取得…所代表的參數,可以在函數中訪問arg局部變量(表類型)得到。

  1. 如 sum(1,2,3,4)  
  2. 則,在函數中,a = 1, b = 2, arg = {3, 4} 

更可貴的是,它可以同時返回多個結果,比如:

  1.     function s()  
  2.       return 1,2,3,4  
  3.     end  
  4.     a,b,c,d = s() -- 此時,a = 1b = 2c = 3, d = 4 

前面說過,表類型可以擁有任意類型的值,包括函數!因此,有一個很強大的特性是,擁有函數的表,哦,我想更恰當的應該說是對象吧。Lua可以使用面向對象編程了。不信?那我舉例如下:

  1.     t =  
  2.     {  
  3.      Age = 27 
  4.      add = function(self, n) selfself.Age = self.Age+n end  
  5.     }  
  6.     print(t.Age) -- 27  
  7.     t.add(t, 10)  
  8.     print(t.Age) -- 37  
  9.     不過,t.add(t,10) 這一句實在是有點土對吧?沒關系,在Lua中,你可以簡寫成:  
  10.     t:add(10) -- 相當于 t.add(t,10) 

#p#

7、Userdata 和 Thread

這兩個類型的話題,超出了本文的內容,就不打算細說了。

就這么結束了嗎?當然不是,接下來,需要用Lua解釋器,來幫助你理解和實踐了。這篇小文只是幫助你大體了解Lua的語法。如果你有編程基礎,相信會很快對Lua上手了。

就象C語言一樣,Lua提供了相當多的標準函數來增強語言的功能。使用這些標準函數,你可以很方便的操作各種數據類型,并處理輸入輸出。有關這方面的信息,你可以參考《Programming in Lua 》一書,你可以在網絡上直接觀看電子版,網址為:http://www.lua.org/pil/index.html

使用例程

1. 函數的使用

以下程序演示了如何在Lua中使用函數, 及局部變量

  1. 例e02.lua  
  2. -- functions   
  3. function pythagorean(a, b)   
  4. local c2 = a^2 + b^2   
  5. return sqrt(c2)   
  6. end   
  7. print(pythagorean(3,4))  
  8. 運行結果  

程序說明

在Lua中函數的定義格式為:

  1. function 函數名(參數)  
  2. ...  
  3. end 

與Pascal語言不同, end不需要與begin配對, 只需要在函數結束后打個end就可以了.本例函數的作用是已知直角三角形直角邊, 求斜邊長度. 參數a,b分別表示直角邊長,在函數內定義了local形變量用于存儲斜邊的平方。

與C語言相同, 定義在函數內的代碼不會被直接執行, 只有主程序調用時才會被執行.local表示定義一個局部變量, 如果不加local剛表示c2為一個全局變量, local的作用域是在最里層的end和其配對的關鍵字之間, 如if ... end, while ... end等。全局變量的作用域是整個程序。

2. 循環語句

  1. 例e03.lua  
  2. -- Loops   
  3. for i=1,5 do   
  4. print("i is now " .. i)   
  5. end 

運行結果

  1. i is now 1   
  2. i is now 2   
  3. i is now 3   
  4. i is now 4   
  5. i is now 5 

程序說明

這里偶們用到了for語句

for 變量 = 參數1, 參數2, 參數3 do

循環體

end

變量將以參數3為步長, 由參數1變化到參數2

例如:

  1. for i=1,f(x) do print(i) end  
  2. for i=10,1,-1 do print(i) end 

這里print("i is now " .. i)中,偶們用到了..,這是用來連接兩個字符串的,偶在(1)的試試看中提到的,不知道你們答對了沒有。

雖然這里i是一個整型量,Lua在處理的時候會自動轉成字符串型,不需偶們費心。

3、條件分支語句

例e04.lua

  1. -- Loops and conditionals   
  2. for i=1,5 do  
  3. print(“i is now “ .. i)  
  4. if i < 2 then   
  5. print(“small”)   
  6. elseif i < 4 then   
  7. print(“medium”)   
  8. else   
  9. print(“big”)   
  10. end   
  11. end 

運行結果

  1. i is now 1   
  2. small   
  3. i is now 2   
  4. medium   
  5. i is now 3   
  6. medium   
  7. i is now 4   
  8. big   
  9. i is now 5   
  10. big 

#p#

程序說明

if else用法比較簡單, 類似于C語言, 不過此處需要注意的是整個if只需要一個end,

哪怕用了多個elseif, 也是一個end.

例如

  1. if op == "+" then  
  2. r = a + b  
  3. elseif op == "-" then  
  4. r = a - b  
  5. elseif op == "*" then  
  6. r = a*b  
  7. elseif op == "/" then  
  8. r = a/b  
  9. else  
  10. error("invalid operation")  
  11. end 

數組的使用

1、簡介

Lua語言只有一種基本數據結構, 那就是table, 所有其他數據結構如數組啦,類啦, 都可以由table實現.

2、table的下標

例e05.lua

  1. -- Arrays   
  2. myData = {}   
  3. myData[0] = “foo”   
  4. myData[1] = 42   
  5. -- Hash tables   
  6. myData[“bar”] = “baz”   
  7. -- Iterate through the   
  8. -- structure   
  9. for key, value in myData do   
  10. print(key .. “=“ .. value)   
  11. end 

輸出結果

  1. 0=foo   
  2. 1=42   
  3. bar=baz 

程序說明

首先定義了一個table myData={}, 然后用數字作為下標賦了兩個值給它. 這種

定義方法類似于C中的數組, 但與數組不同的是, 每個數組元素不需要為相同類型,

就像本例中一個為整型, 一個為字符串.

程序第二部分, 以字符串做為下標, 又向table內增加了一個元素. 這種table非常

像STL里面的map. table下標可以為Lua所支持的任意基本類型, 除了nil值以外.

Lua對Table占用內存的處理是自動的, 如下面這段代碼

  1. a = {}  
  2. a["x"] = 10  
  3. b = a -- `b' refers to the same table as `a'  
  4. print(b["x"]) --> 10  
  5. b["x"] = 20  
  6. print(a["x"]) --> 20  
  7. a = nil -- now only `b' still refers to the table  
  8. b = nil -- now there are no references left to the table 

b和a都指向相同的table, 只占用一塊內存, 當執行到a = nil時, b仍然指向table,

而當執行到b=nil時, 因為沒有指向table的變量了, 所以Lua會自動釋放table所占內存

3、able的嵌套

Table的使用還可以嵌套,如下例

例e06.lua

  1. -- Table ‘constructor’   
  2. myPolygon = {   
  3. color=“blue”,   
  4. thickness=2,   
  5. npoints=4;   
  6. {x=0, y=0},   
  7. {x=-10, y=0},   
  8. {x=-5, y=4},   
  9. {x=0, y=4}   
  10. }  
  11. -- Print the color   
  12. print(myPolygon[“color”])   
  13. -- Print it again using dot   
  14. -- notation   
  15. print(myPolygon.color)   
  16. -- The points are accessible   
  17. -- in myPolygon[1] to myPolygon[4]   
  18. -- Print the second point’s x   
  19. -- coordinate   
  20. print(myPolygon[2].x) 

程序說明

首先建立一個table, 與上一例不同的是,在table的constructor里面有{x=0,y=0},

這是什么意思呢? 這其實就是一個小table, 定義在了大table之內, 小table的

table名省略了.

最后一行myPolygon[2].x,就是大table里面小table的訪問方式.

小結:LUA腳本語言入門之Lua程序設計初步的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: 沐楓
相關推薦

2013-12-12 16:30:20

Lua腳本語言

2011-08-22 18:00:53

Lua語言

2011-08-25 10:35:14

Lua語言函數

2011-08-25 10:40:21

Lua游戲

2011-08-22 16:59:28

Lua

2011-08-22 18:08:09

Lua腳本

2011-06-22 14:07:42

Lua

2011-08-25 11:02:04

2011-08-25 09:55:27

2011-08-23 09:44:28

LUA腳本

2011-08-24 13:32:17

2011-08-25 14:26:40

LUA數據文件

2011-08-24 17:05:01

Lua

2011-08-25 14:43:55

LUA對象序列化

2009-02-10 09:53:41

多線程程序設計Java

2011-08-25 13:22:40

CEGUILua腳本

2013-12-12 15:59:23

Lua腳本語言

2011-08-25 10:24:27

Lua

2011-08-25 10:15:02

Lua安裝函數

2013-06-27 09:41:19

LuaLua語言Lua語言快速入門
點贊
收藏

51CTO技術棧公眾號

黄色小网站91| 久久五月天色综合| 欧美伦理片在线看| 色欧美激情视频在线| 国产一区在线观看麻豆| 国内精品久久久| 少妇无套高潮一二三区| 99精品在线免费观看| 亚洲高清视频的网址| 中文 欧美 日韩| 国产中文字幕在线观看| 日韩成人午夜电影| 欧美成人性色生活仑片| 成人免费av片| 国产欧美视频在线| 岛国精品视频在线播放| 亚洲视频电影| 韩国中文字幕hd久久精品| 日韩在线播放一区二区| 欧美激情综合色综合啪啪五月| 国内精品卡一卡二卡三| 日本一区二区乱| 欧美特级www| 一级性生活视频| 国产在线视频你懂得| 国产成人h网站| 色中色一区二区| 日韩最新中文字幕| 国产最新视频在线观看| 成人性生交大片免费看视频在线| 国产精品午夜一区二区欲梦| 91视频免费在线看| 99视频精品视频高清免费| 国产网站欧美日韩免费精品在线观看 | 久久精品视频一区二区| 91九色综合久久| 青青艹在线观看| 国产精品视频| 91国内在线视频| 麻豆成人在线视频| 综合天堂av久久久久久久| 最好看的2019的中文字幕视频| 性久久久久久久久久久| 亚洲亚洲一区二区三区| 欧美一区二区大片| 手机av在线免费| 91福利精品在线观看| 日韩欧美国产免费播放| 日本a视频在线观看| 日本资源在线| 亚洲激情av在线| 色撸撸在线观看| 日本在线看片免费人成视1000| 国产丝袜美腿一区二区三区| 美女被啪啪一区二区| 亚洲欧美一区二区三| 99在线视频精品| 精品一区二区三区国产| 爽爽视频在线观看| 99re66热这里只有精品3直播 | 年下总裁被打光屁股sp| 51亚洲精品| 亚洲第一精品福利| 黄色免费看视频| 欧美日韩一本| 精品国产乱码久久久久久婷婷| 精品久久久久久乱码天堂| xxxx国产精品| 菠萝蜜视频在线观看一区| 国产麻豆乱码精品一区二区三区| 成人乱码一区二区三区| 不卡区在线中文字幕| 好看的日韩精品视频在线| 无码国产精品一区二区色情男同| 99re这里只有精品视频首页| 欧美性色黄大片人与善| av大全在线免费看| 亚洲男人电影天堂| 欧美人成在线观看| 日韩在线影院| 这里是久久伊人| 亚洲av熟女高潮一区二区| 欧美尿孔扩张虐视频| 亚洲色无码播放| 青青操在线视频观看| 女主播福利一区| 韩日精品中文字幕| 日韩精品在线一区二区三区| 极品美女销魂一区二区三区| 国产高清在线一区二区| 欧美精品a∨在线观看不卡| 欧美国产激情一区二区三区蜜月| 日韩视频在线观看视频| 国产网站在线| 欧美日韩一区在线观看| 亚洲精品久久久久久| 日韩精品免费一区二区三区竹菊| 在线电影av不卡网址| 久久久精品91| 日韩国产在线观看一区| 99视频网站| 精华区一区二区三区| 亚洲免费高清视频在线| 国产在线青青草| 麻豆精品久久| 亚洲一级一级97网| 久久精品视频9| 免费久久99精品国产| 97在线电影| av电影在线观看网址| 亚洲成人资源网| 午夜免费看毛片| 九九视频免费观看视频精品| 久久97精品久久久久久久不卡| 国产嫩bbwbbw高潮| 国产成人精品免费| 亚洲精品tv久久久久久久久| sm性调教片在线观看| 欧美高清dvd| 爱爱免费小视频| 亚洲国产影院| 7777精品伊久久久大香线蕉语言 | 2021国产精品久久精品| 久久免费视频2| free欧美| 日韩黄在线观看| 久久久久香蕉视频| 激情综合五月婷婷| 日韩aⅴ视频一区二区三区| h片在线观看视频免费| 成人免费在线视频观看| 两根大肉大捧一进一出好爽视频| 日韩欧美中文字幕在线视频 | 国产视频99| 黄色三级网站在线观看| 国产精品久久久久久久久免费樱桃 | 欧洲av一区二区三区| 亚洲区第一页| 国产chinese精品一区二区| 91网在线播放| 黄页视频在线91| 久久这里只有精品99| 蜜臀尤物一区二区三区直播| 成人av电影免费观看| 蜜臀在线免费观看| www 久久久| 久久久av一区| 97超碰资源站| 涩涩av在线| 日韩欧美成人午夜| 紧身裙女教师波多野结衣| 欧美网色网址| 久久久久久美女| 亚洲高清视频在线播放| 亚洲精品亚洲人成人网在线播放| 搡的我好爽在线观看免费视频| 国产厕拍一区| 高清一区二区三区日本久| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 91蝌蚪国产九色| 欧美熟妇精品一区二区| 亚洲女人18毛片水真多| 亚洲女人****多毛耸耸8| 国产高清999| 中文字幕一区二区三区在线视频 | 国产免费观看高清视频| 国产美女撒尿一区二区| 777国产偷窥盗摄精品视频| 日韩一级中文字幕| 一本一道久久a久久精品| 久久久久无码精品国产sm果冻| 六月丁香婷婷久久| 国产性生活免费视频| 日产福利视频在线观看| 亚洲精品一区二三区不卡| 亚洲影院在线播放| 国产精品视频免费| 波多野结衣网页| 99国产成+人+综合+亚洲欧美| 精品九九九九| 亚洲一二三四| 精品国产百合女同互慰| 国产精品日韩欧美一区二区三区| 欧美日韩视频在线播放| 欧美二区三区的天堂| 曰本女人与公拘交酡| 91香蕉视频污| 欧在线一二三四区| 青青草91久久久久久久久| 久久久成人精品| 91精品国产色综合久久不8| 尤物av一区二区| 中文字幕第22页| 999在线观看精品免费不卡网站| 美媛馆国产精品一区二区| 成人日韩精品| 社区色欧美激情 | 高潮一区二区三区乱码| 黑人巨大精品欧美一区免费视频 | 欧美在线 | 亚洲| 欧美性高潮在线| 人与动物性xxxx| 91最新地址在线播放| 韩国视频一区二区三区| 日韩美女一区二区三区四区| 男人天堂成人在线| 亚洲精品网址| 国产欧美亚洲日本| 爱看av在线| 中文字幕成人在线| 蜜桃av噜噜一区二区三区麻豆| 欧美性高潮在线| 91久久国产综合| 国产亚洲婷婷免费| 免费观看黄网站| 美女国产一区| 国产精品十八以下禁看| av在线免费网站| 一本色道久久综合亚洲精品小说 | 欧美午夜在线视频| 亚洲精品白虎| 啪啪国产精品| 亚洲free性xxxx护士白浆| av日韩电影| 高清视频一区二区| 亚洲一区二区三区免费看| 超碰97久久国产精品牛牛| 国产精品日韩精品| 三级中文字幕在线观看| 自拍偷拍免费精品| 欧美视频综合| 欧美精品一区二区三区很污很色的| 久久精品偷拍视频| 一本大道av一区二区在线播放| 国产在线免费视频| 综合久久久久综合| 国产精品高清无码在线观看| 成人深夜福利app| 色婷婷一区二区三区在线观看| 日韩精品一区第一页| 国产免费黄视频| 国内精品福利| 国产福利精品在线| av在线不卡免费| 蜜臀久久99精品久久久无需会员 | a成人v在线| 欧美与欧洲交xxxx免费观看 | 一区二区精品国产| 深爱激情综合| 日本不卡二区高清三区| 国产伦精品一区二区三区在线播放| 91精品免费视频| 456成人影院在线观看| 国产成人精品一区| 欧美成人h版| 欧美一级视频在线观看| 欧美大胆成人| 日韩av免费在线| 无遮挡爽大片在线观看视频| 九九九久久国产免费| 青草在线视频| 欧美夫妻性视频| 在线xxxx| 欧美区在线播放| 欧洲在线视频| 久久久久久久久国产| 美足av综合网| 奇米成人av国产一区二区三区| 伊人网在线播放| 欧美中文字幕在线播放| 麻豆网站免费在线观看| 青青草99啪国产免费| 周于希免费高清在线观看| 欧美在线视频免费观看| 成人av观看| 国产精品久久久久久超碰| 日本韩国在线视频爽| 日韩三级影视基地| 国产一区久久精品| 欧美乱大交xxxxx| 国产美女福利在线观看| 91超碰caoporn97人人| 六月婷婷综合| 91精品国产综合久久男男| 秋霞影院一区| 欧美日韩国产精品一区二区| 欧美精品一区二区久久| 在线视频亚洲自拍| 色综合久久网| 91九色丨porny丨国产jk| 欧美一级二区| 五月天婷婷影视| 日韩**一区毛片| 日本福利视频一区| 国产亚洲毛片| xxx国产在线观看| 成人福利电影精品一区二区在线观看| 成人手机在线免费视频| 国产欧美在线观看一区| 青青草视频播放| 国产精品国产自产拍在线| 久热精品在线观看| 色久综合一二码| 亚洲精品97久久中文字幕无码| 精品一区二区电影| 蜜桃av在线免费观看| 欧美精品一二区| 成人精品三级| 官网99热精品| 欧美一区电影| 欧美三级一级片| 国产综合色在线| 四虎永久免费影院| 一区二区三区四区视频精品免费 | 韩国福利在线| 久久久久久久91| 日本免费一区二区三区等视频| 国产亚洲精品美女久久久m| 亚洲v在线看| 那种视频在线观看| 国产成人a级片| 国精品人伦一区二区三区蜜桃| 亚洲成人av在线电影| 亚洲天堂国产精品| 精品av综合导航| 中文在线手机av| 国产精品视频中文字幕91| 麻豆成人入口| 91免费黄视频| 韩国一区二区视频| 欧美黄色一级生活片| 欧美日韩激情视频8区| 国产黄色片av| 最近更新的2019中文字幕| 丁香花在线电影| 999视频在线观看| 久久免费av| 大香煮伊手机一区| 久久久久久影视| 成人精品免费在线观看| 日韩一级二级三级| www在线观看播放免费视频日本| 国产精品免费网站| 国产乱码精品一区二区亚洲 | 欧美视频在线一区二区三区| 欧美男男激情freegay| 97在线看福利| 91麻豆精品激情在线观看最新 | 天天色综合av| 2024亚洲男人天堂| 风间由美中文字幕在线看视频国产欧美| 日韩欧美亚洲精品| 另类的小说在线视频另类成人小视频在线 | 国产一区二区三区四区在线观看| 伊人影院综合网| 欧美亚洲图片小说| 欧美成人性生活视频| 国产精品久久久久一区二区| 久久不见久久见免费视频7| 成人午夜免费在线| 26uuu精品一区二区| 久久久久久久黄色片| 亚洲国产欧美在线成人app| 咪咪网在线视频| 精品在线观看一区二区| 99亚洲伊人久久精品影院红桃| 免费黄色在线视频| 色综合网站在线| 国产天堂素人系列在线视频| 国产欧美日韩视频| 午夜精品视频一区二区三区在线看| 拔插拔插华人永久免费| 亚洲精品成a人| 亚洲第一视频在线| 国模gogo一区二区大胆私拍| 激情五月综合网| 色婷婷.com| 亚洲精品高清视频在线观看| 三级视频网站在线| 国产精品va在线播放| 水蜜桃精品av一区二区| 欧美熟妇精品一区二区| 精品福利樱桃av导航| 国产在线高清| www日韩av| 亚洲一区日本| 无码一区二区三区在线| 这里只有精品视频在线观看| 国内高清免费在线视频| 欧美精品久久久| 韩国视频一区二区| 久久免费视频精品| 在线精品国产欧美| 日本成人精品| www黄色av| 亚洲精品一二三四区| 天天摸天天干天天操| 国产精品日韩久久久久| 午夜精品久久99蜜桃的功能介绍| 玖玖爱在线观看|