Swift语言学习 for循环

54 阅读2分钟

小白,初学者,最近被几个概念搞晕了。 元组、数组、区间

比如这个:

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方法返回值是一个区间,这个区间是整数,闭区间,是该数组的所有有效索引。