购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1 布尔类型

2.1.1 概 念

布尔(Boolean)类型用来表示逻辑里的真(TRUE)或假(FALSE)。

布尔类型最多的用途有两个:

(1)设置FLAG,通常在循环外设置FLAG的初始值,在循环内满足一定条件时变更FLAG的值,这样查看FLAG的值,就可以知道循环逻辑中是否满足一定条件的实例。例如冒泡排序就用到了设置FLAG值的方法。

(2)用作控制逻辑,例如比较版本号:

2.1.2 面试题:冒泡排序

题目描述: 写一下冒泡排序算法。

冒泡排序是经典的排序方式之一,算法复杂度为O(n 2 )。其算法的核心是,对一个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,读者可以实际运行一下程序,思考为什么会是这样的结果。 ywq1qS3IyPWV67HEWv81gYC7RjNnNTo0Szjb9VZkW7l72PuizWon88DpCCA1Wd1+

点击中间区域
呼出菜单
上一章
目录
下一章
×