调整门禁支持率的另一种写法

36 阅读2分钟

这是另一种写法,没有使用.indices属性(目前对属性还是方法,总是乱说,对概念还不清楚),因为本来for循环再数组中就可以遍历,不用使用.indices属性。 .indices属性返回的是一个闭区间的整数,这些整数就是数组的有效索引。 在写程序的时候,会遇到不同类型的值,如何把想要比较的值,统一为同一类型,是必须注意的事情。 在本题中,要计算的是“支持票数”,而“投票堆”数组,是一个Bool值类型的数组。 所以for循环的时候,循环变量“支持”也是Bool值。 所以每次循环的时候,都可以用if语句判断,每一次遍历数组的Bool值,在赋值给循环变量“支持”后,再与if(支持)做比较,因为“支持”为真,所以判断相符合时,就“支持票数 + 1”。

//计算投票结果有多少的支持率

let 投票题目 = "宿舍门禁由22点改为23点"

let 投票堆 = [true, false, true, false, true, false, false]

//遍历投票堆,找出支持的数量

var 支持票数 = 0.0

for 支持 in 投票堆 {       //这里直接对数组进行了遍历,如何要使用.indices的话,需要在判断数组Bool值的时候,就需要用下标操作了,比如先声明for循环中的的变量index,其循环地址为投票堆.indices(这里的循环地址不是投票堆本身,而是投票堆的索引),再用投票堆[index](此处才是投票堆本身的每个元素)逐个进行判断。

    if 支持 {支持票数 += 1}

}

let 支持率 = Int(支持票数 / Double(投票堆.count) * 100)

print("(投票题目)的支持率为(支持率)%")