2.1 布爾類型
2.1.1 概念
布爾(Boolean)類型用來表示邏輯里的真(TRUE)或假(FALSE)。
布爾類型最多的用途有兩個:
(1)設置FLAG,通常在循環外設置FLAG的初始值,在循環內滿足一定條件時變更FLAG的值,這樣查看FLAG的值,就可以知道循環邏輯中是否滿足一定條件的實例。例如冒泡排序就用到了設置FLAG值的方法。
(2)用作控制邏輯,例如比較版本號:

2.1.2 面試題:冒泡排序
題目描述:寫一下冒泡排序算法。
冒泡排序是經典的排序方式之一,算法復雜度為O(n2)。其算法的核心是,對一個n個元素數組,需要進行n-1輪的循環比較。每一輪的循環中,將相鄰的元素進行比較,如果左邊的元素值大于右邊的元素,則將兩者的位置交換;每一輪結束后,最大值的元素就會放置在最右的位置;這樣循環結束后,所有的元素都會按從小到大的順序排列完成。
例如對數組[6,5,4,1,2,3]用冒泡方法進行排序:
原始數組: [6,5,4,1,2,3]
第一次循環:[5,4,1,2,3,6]
第二次循環:[4,1,2,3,5,6]
第三次循環:[1,2,3,4,5,6]
第四次循環:[1,2,3,4,5,6]
第五次循環:[1,2,3,4,5,6]
大家注意到第四、五次循環時,并沒有發生位置交換。這時可以設置一個FLAG,如果一個循環中沒有位置交換,則說明排序已完成,退出循環即可。這樣一個FLAG變量的設置,減少了一次循環的時間。
在其他的場合,也可以設置合適的FLAG,當滿足條件時更改FLAG的值,然后檢測FLAG的值決定是否退出循環,可以減少循環的次數,提高程序的效率。
程序代碼如下:(源碼文件:ch02/bubble_sort.php)

2.1.3 類型轉換
在控制邏輯中,所有表達式的值都會先轉換為boolean值再進行比較,表2-1列出了常見的類型轉換。
表2-1 其他類型轉換為布爾類型

2.1.4 面試題:布爾數據比較
題目描述:不同類型數據與Boolean的比較,判斷其輸出是什么?
程序代碼如下:(源碼文件:ch02/boolean.php)

點評:考察點是各種數據類型到boolean的轉換,參考表2-1,讀者可以實際運行一下程序,思考為什么會是這樣的結果。
- MySQL 8 DBA基礎教程
- 精通軟件性能測試與LoadRunner實戰(第2版)
- Java Web程序設計任務教程
- 量化金融R語言高級教程
- PHP+MySQL+Dreamweaver動態網站開發從入門到精通(第3版)
- Node學習指南(第2版)
- Advanced UFT 12 for Test Engineers Cookbook
- jQuery技術內幕:深入解析jQuery架構設計與實現原理
- Less Web Development Cookbook
- Python高性能編程(第2版)
- Spring Boot學習指南:構建云原生Java和Kotlin應用程序
- Django 3 Web應用開發從零開始學(視頻教學版)
- C/C++程序設計教程:面向對象分冊
- Learn Spring for Android Application Development
- Java核心技術第10版(套裝共2冊)