小白,初学者,最近被几个概念搞晕了。 元组、数组、区间
比如这个:
let vote = [
[true, false, true, false, true, false, false],
[true, false, true, true, true, false, false]
]
解释:声明了vote是一个二层数组。外层数组有两个元素,每个元素又是一个小数组。每个小数组里面又有7个元素。
问题:如何知道vote数组里面有几个元素呢? 答:要用.count方法 print(vote.count) //输出:2
问题:如何打印出该数组的元素呢? 答:直接print() print(vote) //输出全部元素
问题:如何打印数组中的第一个元素呢? 答:需要用下角标[]操作。 print(投票堆[0]) //输出vote数组中第一个元素的全部元素(一共7个)
问题:如何知道第一个元素中有几个元素呢? 答:还是要用到下角标操作 print(投票堆[0].count) //输出:7
问题:用for循环计算vote数组中有多少个元素? 答:
var i = 0 //声明一个变量
for t in vote {
i += 1 问题:如何计算vote数组中有多少个true? 答:用两次for循环 var 投票 = 0
for i in 投票堆 {
let x = i
for x in i {
if x == true {
投票 += 1
}
}
}
print(投票)
贴一道练习题
let 投票题目 = "宿舍门禁由22点改为23点"
let 投票题目2 = "每周二设为节水日,停水一天"
let 投票题目堆 = [投票题目, 投票题目2]
let 投票堆 = [
[true, false, true, false, true, false, false],
[true, false, true, true, true, false, false]
]
for i in 投票题目堆.indices { //.indices返回的是一个Range(区间),表示该数组所有可用的索引
let 投票项目 = 投票题目堆[i]
var 支持票数 = 0.0
let 所有票 = 投票堆[i]
print(所有票)
for voteIndex in 所有票.indices {
let 支持 = 所有票[voteIndex]
if (支持) {
print("第(voteIndex + 1)票是支持的,所以 + 1")
支持票数 += 1}
}
let 支持率 = Int(支持票数 / Double(投票堆[i].count) * 100)
print("(投票项目)支持率为(支持率)%")
}
注意,要清楚理解.indices方法返回值是一个区间,这个区间是整数,闭区间,是该数组的所有有效索引。