亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Swift > 正文

Swift教程之基本運算符詳解

2020-03-09 17:51:28
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Swift教程之基本運算符詳解,本文講解了賦值運算符、數學運算符、取余運算符、浮點余數計算、自增和自減運算符等,需要的朋友可以參考下
 

運算符是一種特定的符號或表達式,用來檢驗、修改或合并變量。例如,用求和運算符+可以對兩個數字進行求和(如let i = 1 + 2);稍微復雜一點的例子有邏輯與操作符&& (如if enteredDoorCode && passedRetinaScan) ,自增長運算符 ++i (這是i=i+1的簡寫方式)

Swift支持C標準庫中的大多數運算符并提升了各自的兼容性,從而可以排除常見的編碼錯誤。賦值操作符 (=)不會返回一個值,這樣可以防止你因粗心將賦值運算符 (=)寫成 (==)而引起錯誤。算術符(+、 -、 *、 /、 % 等)會檢查與駁回值溢出,這樣可以避免值類型的數據在超過值類型所允許的存儲范圍時,出現意想不到的數據。你可以選擇使用Swift所提供的值溢出運算符進行量化溢出的行為,詳細見溢出操作符。 

與C語言不同,Swift允許你對浮點數執(zhí)行取余運算。同時,Swift提供兩個范圍的運算符 (a..b 和 a…b),作為表示一個數值范圍的簡寫方式,這點C不支持。

本章節(jié)描述了Swift常見運算符。高級運算符覆蓋了Swift的高級操作符,并且對自定義操作符,對自定義類型操作符的實現進行了描述。

術語

操作符都是一元、二元或三元:

◎一元操作符操作單個對象 (如 -a)。一元前綴操作符出現在對象前(如 !b),一元后綴操作符在對象后出現 (如 i++)。
◎二元操作符操作兩個對象(如 2 + 3),并且操作符位于兩個元素中間。
◎三元操作符對兩個對象進行操作。與C一樣,Swift僅支持一個三元操作符:三元條件操作符 (a ? b : c).

操作符所影響的值被稱為操作數。表達式1 + 2中,符號 + 是一個二元運算符并且兩個操作數分別為 1 和 2。

賦值運算符

賦值運算符(a = b) 用b的值去初始化或更新a 的值

復制代碼代碼如下:

let b = 10
var a = 5
a = b
// 此刻a的值為10

假如右邊賦值的數據為多個數據的元組,它的元素可以是一次性賦給的多個常量或變量
復制代碼代碼如下:

let (x, y) = (1, 2)
// x等于1, 并且y等于2

與C及Objective-C不同,Swift中賦值運算符并不將自身作為一個值進行返回。所以以下的代碼是不合法的:
復制代碼代碼如下:

if x = y {
// 錯誤, 因為x = y并不會返回一個值
}

此特性幫助你避免因粗心將賦值運算符 (==)寫成 (=)而引起的錯誤。因為 if x = y 這樣寫是無效的。

 

數學運算符
Swift支持所有數字類型的四個標注運算符:

◎加法(+) *減法(-)
◎乘法(*)
◎除法(/)

例如:

復制代碼代碼如下:

1 + 2 // equals 3
5 - 3 // equals 2
2 * 3 // equals 6
10.0 / 2.5 // equals 4.0

不同于C和Objective-C,默認情況下Swift的算術運算符不允許值溢出。你可以通過Swift的溢出運算符來選擇值的溢出情況(例如 a & + b)。詳見 Overflow Operators

 

加法運算符對字符串連接也一樣適用,例如:

復制代碼代碼如下:

"hello, " + "world" // equals "hello, world"

兩個字符,或者一個字符一個字符串,能組合成一個新的字符串:
復制代碼代碼如下:

let dog: Character = "dog"(由于瀏覽器不能顯示狗的unicode圖像,故用三個字母代替……)
let cow: Character = "cow"(同上……)
let dogCow = dog + cow
// dogCow is equal to "dogcow"

 

詳見Concatenating Strings and Characters 

取余運算符

取余運算符(a % b)計算出a是b的幾倍然后返回被留下的值(余數)。

注:余數運算符(%)亦稱是其他語言的一個取模運算符。然而,其在Swift里意味著如果對負數操作,嚴格上講,得到的是余數而不是模數。

這是余數運算符如何工作。 要計算9% 4,你首先得求出9是4的幾倍 :

Swift教程之基本運算符詳解

9能去除兩個4,并且余數是1 (顯示在橙色)。

在Swift中,這個將被寫成:

復制代碼代碼如下:

9 % 4 // equals

確定a % b的答案, 運算符%計算下列等式并且返回余數作為其輸出:
復制代碼代碼如下:

a = (b × some multiplier) + remainder

some multiplier 是a里面能包含b的最多倍數。

 

將9和4插入到公式:

復制代碼代碼如下:

9 = (4 × 2) + 1

同一個方法是應用的,當計算a時的一個負值的余數:
復制代碼代碼如下:

 -9 % 4 // equals -1
 

將-9和4插入到公式:
復制代碼代碼如下:

-9 = (4 × -2) + -1

產生余數值為-1。

 

b為負值時的b的符號被忽略,這意味著%b和%-b的結果是一樣的。

浮點余數計算

不同于C和Objective-C,Swift的余數運算符也能運用于浮點數:

復制代碼代碼如下:

 8 % 2.5 // equals 0.5

在本例中, 8用2.5來分等于3, 余數是0.5,因此余數為0.5。

 

Swift教程之基本運算符詳解

自增和自減運算符

像C一樣,Swift提供一個自增運算符(++)和自減運算符(–)作為增加或減少一個數值的一種快捷方式,增減量為1。 您能對任何整數或浮點類型的變量使用這些運算符。

復制代碼代碼如下:

var i = 0 
++i // i now equals 1

每當你使用 ++i ,i 的值增加1,本質上++i可以看做是i=i+1,同樣–i可以看做是i=i-1。

 

++和–符號可以使用作為前綴算符或作為后綴運算符。++i 和 i++ 是兩個有效的方式給i的值增加1,同樣, –i和i–如是。

注意這些運算符修改i并且返回值。如果你只想要增加或減值i,您可以忽略返回值。然而,如果你使用返回值,根據下列規(guī)則將是不同的根據的您是否使用了運算符的前綴或后綴版本,它:

◎如果運算符在變量之前被寫,它在返回其值之前增加變量。
◎如果運算符在變量之后被寫,它在返回其值之后增加變量。

例如:

var a = 0
let b = ++a
// a and b are now both equal to 1
let c = a++
// a is now equal to 2, but c has been set to the pre-increment value of 1
在上面的例子中,let b = ++a 中a在返回其值之前增加,這就是為什么a和b的新值是等于1。

然而,let c = a++ 中a在返回其值之后增加,這意味著c獲得a的原值1,然后a自增,a等于2。

除非你需要特定工作情況下才使用i++,否則在所有的情況下建議你使用++i和–i, 因為他們修改i并返回值的行為符合我們的預期。

一元減運算符

一個數值前加了符號-,叫作一元減運算符:

復制代碼代碼如下:

let three = 3
let minusThree = -three // minusThree equals -3
let plusThree = -minusThree // plusThree equals 3, or "minus minus three"

一元減運算符(-)直接地被加在前面,在它起作用的值之前,不用任何空白空間。

 

一元加運算符

一元加運算符(+)返回它起作用的值,不做任何變動:

復制代碼代碼如下:

let minusSix = -6
let alsoMinusSix = +minusSix // alsoMinusSix equals -6

雖然一元加上運算符實際上不執(zhí)行什么,當你也使用一元減負數的運算符時,你能使用它提供對稱的正數。

 

復合賦值操作符

Swift提供類似C語言的復合賦值操作符,即把賦值和另一個運算合并起來。舉個例子,像加法賦值運算符(+ =):

復制代碼代碼如下:

var a = 1
a += 2
// a is now equal to 3

表達式 a += 2 比 a = a + 2更精煉。加法賦值運算符能夠有效地把加法和賦值組合到一個運算,同時執(zhí)行這兩個任務。

 

要注意的是,復合賦值操作符不返回值。例如,你不能寫讓成let b = + = 2,這種行為不同于上面提到的遞增和遞減運算符。

復合賦值運算符的完整列表可以在[Expressions]那一章節(jié)找到

比較運算符

Swift支持所有標準c的比較運算符

等于 (a == b)
不等于(a != b)
大于 (a > b)
小于 (a < b)
大于等于 (a >= b)
小于等于(a <= b)

注:Swift 提供兩個恒等運算符(=== and !==),用它來測試兩個對象引用是否來自于同一個對象實例。詳見Classes and Structures。 每個比較操作符返回一個Bool值來表示語句是否為真:

 

復制代碼代碼如下:

1 == 1 // true, because 1 is equal to 1 
2 != 1 // true, because 2 is not equal to 1 
2 > 1 // true, because 2 is greater than 1 
1 < 2 // true, because 1 is less than 2 
1 >= 1 // true, because 1 is greater than or equal to 1 
2 <= 1 // false, because 2 is not less than or equal to 1

 

比較操作符通常用在條件語句,如if語句:

復制代碼代碼如下:

let name = "world" 
if name == "world" { 
println("hello, world") 
} else { 
println("I'm sorry /(name), but I don't recognize you") 

// prints "hello, world", because name is indeed equal to "world"

 

想要了解更多有關的if語句,請參閱控制流。

三元條件運算符
三元條件運算符是一種特殊的運算符,有三個部分,其形式為question? answer1:answer2.這是一個用來測試兩種表達式基于輸入是真或是 假的快捷方式。如果question? 為真時, 它評估answer1并返回其值; 否則,它評估answer2并返回其值。三元條件運算符是下面的代碼的簡化:

復制代碼代碼如下:

if question {
answer1
} else {
answer2
}

這里舉一個列子,計算一個表行像素的高度,如果行有一個頭,行高應該是50像素,比內容要高度要高。如果行沒有頭是20像素:
復制代碼代碼如下:

let contentHeight = 40
let hasHeader = true
let rowHeight = contentHeight + (hasHeader ? 50 : 20)
// rowHeight is equal to 90

前面的例子也可以用下面的的代碼:
復制代碼代碼如下:

let contentHeight = 40
let hasHeader = true
var rowHeight = contentHeight
if hasHeader {
rowHeight = rowHeight + 50
} else {
rowHeight = rowHeight + 20
}
// rowHeight is equal to 90

第一個例子使用的三元條件運算符,意味著rowHeight可以在一行代碼被設置為正確的值。這比第二個示例更簡潔, 不需要課外的rowHeight變量, 因為它的價值不需要在一個if語句中修改。

 

三元條件運算符提供了一個高效的寫法來決定哪個表達式會被執(zhí)行。不過還是請小心使用三元條件運算符,其簡潔性如果過度使用會導致閱讀代碼的困難。要避免多個實例的三元條件運算符組合成一個復合語句。

范圍運算符

Swift包含兩個范圍運算符,能快捷的表達一系列的值

封閉范圍運算符

封閉范圍運算符(a…b)定義了一個范圍,從a到b,并包括a和b的值。

當要在一個范圍內迭代所有可能的值的時候,范圍運算符是非常有用的, 例如for-in循環(huán)

復制代碼代碼如下:

for index in 1...5 {
println("/(index) times 5 is /(index * 5)")
}
// 1 times 5 is 5
// 2 times 5 is 10
// 3 times 5 is 15
// 4 times 5 is 20
// 5 times 5 is 25

 

欲了解更多for-in循環(huán),請參閱控制流。 

半封閉的區(qū)域運算符

半封閉的區(qū)域運算符(a..b)定義了從a到b的范圍,但不包括b。它被認為是半封閉的,因為它包含第一個值,而不包含最終值。

半封閉的范圍使用明確,當你使用從零開始的列表,如數組,它是有用的數到(但不包括)列表的長度:

復制代碼代碼如下:

let names = ["Anna", "Alex", "Brian", "Jack"]
let count = names.count
for i in 0..count {
println("Person /(i + 1) is called /(names[i])")
}
// Person 1 is called Anna
// Person 2 is called Alex
// Person 3 is called Brian
// Person 4 is called Jack

 

請注意,該數組包含四個項目,但0 . .數只數到3(數組中的最后一個項目的索引),因為它是一個半封閉的范圍。欲了解更多有關數組的信息,請參閱數組 

邏輯運算符

邏輯運算符修改或結合布爾邏輯值true和false。Swift支持這三個標準邏輯運算符基于c語言:

◎Logical NOT (!a)
◎Logical AND (a && b)
◎Logical OR (a || b)

邏輯非運算符

邏輯非運算符(!a)轉化一個Bollean值,true變成false,false變成true。

邏輯操作符是一個前綴操作符, 并立即出現在它修飾的值之前,沒有任何空白,它被解讀為”不是”, 見下面的例子:

let allowedEntry = false
if !allowedEntry {
println("ACCESS DENIED")
}
// prints "ACCESS DENIED"
這句話if !allowedEntry 能理解為 “if not allowedEntry.” 只執(zhí)行后續(xù)的行,如果“not allowedEntry” 是 true; 那就是說 if allowedEntry是false.

在這個例子中,精心挑選的布爾常量和變量名可以幫助保持代碼的可讀性和簡潔,同時避免雙重否定或混亂的邏輯語句。

邏輯與運算符

邏輯與運算符:(A && B)創(chuàng)建的表達式中,A和B兩個值必須同時為true時表達式才正確。

其中A或者B有任一值是false時,邏輯與算符表示不成立,必須兩者同時為true時才成立。事實上,如果第一個值是false,第二個值甚至不會再進行判斷,因為必須是兩個值皆為true,已經有一方false、則沒必要再往下面進行判斷了。這被稱作短路條件。

以下這個例子判斷兩個Bool 類型的值,并只有這兩個值都為真的時候會輸出:Welcome。失敗則輸出”ACCESS DENIED”:

復制代碼代碼如下:

let enteredDoorCode = true
let passedRetinaScan = false
if enteredDoorCode && passedRetinaScan {
    println("Welcome!")
} else {
    println("ACCESS DENIED")
}
// prints "ACCESS DENIED”

 

邏輯或運算符

表達式(a || b)運算符中、只要a或者b有一個為true,表達式就成立。

與上面的邏輯與運算符相似,邏輯或運算符使用短路條件判斷,如果左邊是 true,那么右邊不會被判斷,因為整體結果不會改變了。

在下面的例子中,第一個布爾值(hasDoorKey)為false,但第二個值(knowsOverridePassword)為true。因為兩者有一個值是true,整個表達式的計算結果也為true,正確輸出:Welcome!

復制代碼代碼如下:

let hasDoorKey = false
let knowsOverridePassword = true
if hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"

 

復合邏輯表達式

你可以將多個邏輯運算符復合來創(chuàng)建更長的復合表達式:

復制代碼代碼如下:

if enteredDoorCode && passedRetinaScan || hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"

相比于之前兩個單獨分開的運算符,本次通過多重嵌套、將我們上面的&&、|| 運算符相結合組合成一個較長的復合表達式。看起來有點饒人、其實本質還是兩兩相比較、可以簡單地看成A && B || C || D、從左往右根據運算符優(yōu)先級進行判斷、注意區(qū)分開&&、||、只要牢記運算邏輯&&需要兩者都為true、||則只需要一方為true則運算符正確即可解析整個復合表達式、透過現象看本質。

 

明確地括號(翻譯成中文語句不連貫太特么饒人了、怒了自己理解。)

復合表達式中,我們可以添加進()使確邏輯意圖更加明確,上面的例子中,我們可以在第一部分上加括號來使意義更明確。

復制代碼代碼如下:

if (enteredDoorCode && passedRetinaScan) || hasDoorKey || knowsOverridePassword {
println("Welcome!")
} else {
println("ACCESS DENIED")
}
// prints "Welcome!"

在復合邏輯表達式中、我們可以使用括號明確地表示我們需要將幾個值放在一個單獨的邏輯運算中去判斷得出結果、最后根據()內的結果再去與后面的值進行判斷、看上面的例子、就像我們小學學加減乘除一樣、如果沒有括號()我們肯定是按照運算符的優(yōu)先級去判斷、但此時有了括號、我們需要先運算其中的邏輯運算符得到它們的值.使用括號()在符合邏輯表達式中可以更明確的你的意圖。
 

注:相關教程知識閱讀請移步到swift教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
日韩写真欧美这视频| 久久精品72免费观看| 一本大道久久加勒比香蕉| 成人高清在线观看| 欧美日韩激情视频在线观看| 第一sis亚洲原创| 亚洲人成色777777老人头| 欧美久久一区二区| 精品成人在线观看| 少妇久久久久久| 久热精品在线视频| 日韩护士脚交太爽了| 日韩av在线播| 久久九九亚洲综合| 欧美日韩国产在线| 91九色老女人| 精品人妻一区二区三区视频| 亚洲国产一区二区在线播放| 亚洲欧洲久久| 最近中文字幕2019第二页视频| 成人午夜免费影院| 国产三级视频| 91丨九色丨海角社区| 亚洲免费成人av| 欧美好骚综合网| 岛国片免费看| 日韩欧美国产高清| 9l国产精品久久久久麻豆| 天堂成人在线| 日韩精品一区二区三区中文在线| 黄色av电影在线观看| 国产激情视频网站| 色婷婷综合视频| 日本一级片免费| 91亚洲无吗| heyzo高清在线| 久久久久高清精品| 欧美精品一区在线| 亚洲一卡二卡三卡四卡| 成人在线视频网址| 亚洲蜜臀av乱码久久精品蜜桃| 成年人视频在线免费看| 91尤物国产福利在线观看| 国产一级免费| 久久久久国产精品视频| 久久影视一区二区| 日韩美女黄色片| 久久精品免视看国产成人| 日韩一区二区高清| 中文字幕 欧美 日韩| 欧美一区激情| av成人免费网站| 国产精品入口麻豆九色| 欧美一区影院| 久久婷婷国产综合尤物精品| 国产永久精品大片wwwapp| 亚洲区综合中文字幕日日| 欧洲美女免费图片一区| 91精品蜜臀在线一区尤物| 精品久久国产精品| 日韩精品一区二区三区四区视频| 5566中文字幕一区二区电影| 一区二区精品| 99久久亚洲| 精品乱码一区内射人妻无码| 亚洲免费在线电影| 色男人天堂综合再现| 中文字幕第四页| 青青影院一区二区三区四区| 天天综合网在线| 亚洲精品中文字幕乱码| 伊人久久大香线蕉成人综合网| 全部孕妇毛片免费孕妇| 粉嫩精品一区二区三区在线观看| 九一免费在线观看| 精品亚洲成人| 成人avav在线| 欧美在线a视频| 激情小说图片视频| 欧美寡妇偷汉性猛交| 最近中文字幕mv在线一区二区三区四区| 欧洲亚洲精品久久久久| 丰满熟女人妻一区二区三区| 黄色一级片中国| 色噜噜偷拍精品综合在线| 熟妇人妻一区二区三区四区| 5566日本婷婷色中文字幕97| 国内精品伊人久久久久av影院| 日韩欧美中文在线视频| 青青久久aⅴ北条麻妃| 国产综合精品一区| 亚洲国产日韩在线一区模特| 免费观看欧美成人禁片| av成人毛片| 在线视频这里只有精品| 日韩精品电影一区二区三区| 国产富婆一区二区三区| 亚洲国产精品无码av| 久久久蜜桃一区二区人| 99久热在线精品996热是什么| 久久三级中文| 偷拍精品福利视频导航| av一级在线| 欧洲不卡av| 在线观看91精品国产麻豆| 超碰在线免费公开| 日本成人中文字幕| 久久综合激情网| 欧美成人一区二区三区电影| 首页亚洲中字| 欧美一级二级三级蜜桃| 东京热av一区| 国产寡妇亲子伦一区二区| 99热这里只有精品99| 亚洲图片欧美一区| 免费日韩av片| 91freevideo| 国产伦理一区二区三区| 无码日本精品xxxxxxxxx| 妞干网免费视频| 精品视频在线播放| 日韩精品中文字| 牛牛精品视频在线| 91传媒免费观看| 亚洲影视一区二区| 国产美女性感在线观看懂色av| 国产日产欧美一区二区视频| 粗大的内捧猛烈进出视频| 国产成人天天5g影院在线观看| 一本色道久久综合亚洲精品不| 欧美日韩亚洲国产综合| 国产成人亚洲欧美| 九九在线观看视频| 2022国产精品| 成人激情在线播放| 中文字幕久久午夜不卡| 黄色一级片免费播放| 亚洲一区二区中文| 国产91av在线| 成人免费毛片在线观看| 久久精品国产99| 国产精品播放| 天天在线女人的天堂视频| 综合精品久久久| 2022亚洲天堂| 粉嫩精品一区二区三区在线观看| 久久精品视频91| 东京热av一区| 精品毛片乱码1区2区3区| 亚洲成人三级| 国产在线观看中文字幕| 青青草91视频| 亚洲日本中文字幕区| 欧美日韩美女在线观看| 麻豆疯狂做受xxxx高潮视频| y97精品国产97久久久久久| 两根大肉大捧一进一出好爽视频| 日本高清久久| 一区二区欧美激情| 蜜臀久久99精品久久久久久宅男| 精品久久久久久久大神国产| 夜夜嗨av一区二区三区| 欧美一卡2卡3卡4卡| 欧美亚洲在线播放| aaa毛片在线观看| 欧美色图另类| 欧美做受xxxxxⅹ性视频| 91亚洲精品| 成人免费看片视频| 日韩综合网站| av网站观看| 久久久久成人网站| 小黄鸭精品aⅴ导航网站入口| 成人黄色电影网址| 欧美白嫩的18sex少妇| 中文字幕丰满乱码| 成人免费视屏| 午夜性色福利视频| 日韩精品第一区| 亚洲精品国久久99热| 亚洲一区在线视频观看| 国产精品18久久久久久首页狼| 欧美片第一页| 丝袜美腿亚洲色图| 在线播放免费av| 小视频福利在线| 国产一区二区三区在线看| 国内精品久久国产| 无码专区aaaaaa免费视频| 国产情人节一区| 国产亚洲精品综合一区91| 国内精品一区二区三区| 国产精品久久久久久久久影视| 日本一本高清视频| 黄色高清在线观看| 午夜在线视频| 日韩片电影在线免费观看| 可以看毛片的网址| 免费看片91| 91麻豆精品91久久久久同性| 国产精品久久久久久久久婷婷| 日韩欧美一二三区| 国产亚洲精品自在线观看| 免费在线亚洲欧美| 亚洲综合网站| 九色porny丨国产首页在线| 欧美激情区在线播放| 18禁免费无码无遮挡不卡网站| 亚洲精品久久久久国产| 亚洲地区一二三色| 国产黄色免费在线观看| 成人软件在线观看| 亚洲第一天堂| 日本天堂免费a| 国产精品一区二区久久国产| 欧美精品导航| 国产伦精品一区二区三区高清版| 飘雪影院手机免费高清版在线观看| 亚洲一区视频在线观看视频| 成人av动漫在线观看| 国产区在线观看视频| 国产一区二区免费在线| 国产又黄又嫩又滑又白| 日本视频一二三区中文字幕| 精品一区二区三区在线观看视频| 日韩一区二区在线观看视频播放| 4438全国亚洲精品在线观看视频| 亚洲av人人澡人人爽人人夜夜| 北条麻妃99精品青青久久| 同房视频网站| 免费精品99久久国产综合精品应用| 99久久精品免费看国产免费软件| 欧美色欧美亚洲另类| 精品成人免费| 国产精品丝袜一区二区三区| www.久久综合| 2019国内自拍| 亚洲欧美日韩另类| 久久久噜噜噜久久中文字幕色伊伊| 国产调教视频在线观看| 成人午夜视屏| 久久久久女教师免费一区| 成人三级av在线| 亚洲欧美一区二区三| 欧美成人精品三级在线观看| 国产黄色激情视频| 国产在线精品免费av| 亚洲福利精品视频| 亚洲乱码精品一二三四区日韩在线| 五月婷婷另类国产| 免费欧美在线| 精品无人区乱码1区2区3区在线| 国产丝袜在线| 不卡视频一区二区| 日本午夜在线亚洲.国产| 99热精品久久| 午夜精品久久| 特大黑人巨人吊xxxx| 成片免费观看| 亚洲精品日韩成人| 免费亚洲网站| 91视视频在线观看入口直接观看www| sihu影院永久在线影院| 中文字幕一区二区人妻痴汉电车| 久久99国产精品二区高清软件| 久久综合久久久久| 99久精品国产| 色中色777| 日本一二三不卡视频| 欧美一二三区在线观看| 久久国产精品久久精品| 日韩欧美在线综合网| 欧美黄色三级| 亚洲综合日韩| 色综合一区二区| 在线观看av免费| 久久亚洲影音av资源网| 欧美少妇另类| 日本在线观看视频一区| 厕沟全景美女厕沟精品| 亚洲成人av电影| 久久久久国色av免费看影院| 久久免费小视频| 亚洲视频日本| 欧美一区二区麻豆红桃视频| 久久精品欧美日韩精品| 玖草视频在线观看| 欧美国产亚洲另类动漫| 在线播放不卡| 免费av一区二区三区| 免费看成年视频网页| 欧美日韩电影一区二区| 日产精品99久久久久久| 亚洲欧美日韩精品久久亚洲区| 亚洲成人在线播放| 日产精品久久久久久久性色| 欧美xxx视频| 日本三级在线视频| 性一交一乱一伧老太| 97超碰在线公开在线看免费| 性欧美长视频免费观看不卡| 韩剧1988免费观看全集| 国产精成人品2018| 色一区二区三区| 日韩中文在线视频| 欧美bbbbb| 国产伦理片在线观看| 日本久久久a级免费| 欧洲午夜精品| 在线天堂中文| chinese全程对白| 九九热这里只有精品免费看| 精品中文字幕一区二区小辣椒| 一级片免费在线| 久热免费在线观看| 国产成人免费视频一区| 天天综合一区| 先锋资源一区二区| 99999精品视频| 日韩精品中午字幕| 精品国产第一区二区三区观看体验| 亚洲va电影大全| 亚洲精品国产精品国自产观看| 日本久久一区二区三区| 国产私拍一区| 911精品国产一区二区在线| 精品久久久久久亚洲精品| 日韩欧美美女在线观看|