【问题标题】:Using a switch/case for array index对数组索引使用 switch/case
【发布时间】:2016-04-10 12:02:20
【问题描述】:

我正在尝试获取数组中索引的计数并构建计数案例,但我无法正确构建它,也无法在网上或文档中找到任何相关内容。到目前为止,我有以下...

 for array.count in theArray {
     switch array.count {
     case 1...5 :
       //do something
     case 6...10 :
       //do something
     case > 10 :
       //do something
     default :
       //do something
     } //close for switch        
 }//close for for/in

【问题讨论】:

    标签: arrays swift count switch-statement


    【解决方案1】:

    只使用数组而不是array.count,因为它是数组的元素

    let theArray = [[1,2,3,4,5,6,8,7,3,5,6],[1,2,3,4,5,6,8,7,3,5,6],[1,2,3,4,5,6,8,7,3,5,6]]
    
    for array in theArray {
        switch array.count {
        case 1...5 : print("Under 5")
        case 6...10 :  print("Between 6 to 10")
        case let count where count > 10 /*or 10..<Int.max*/ : print("More than 10")
        default : break
        }
    }
    

    【讨论】:

    • 我明白了,所以您不需要在元素中声明计数。让我问一个后续,如果我想建立一个我说的案例,“如果 array.count 大于 10 的案例”。看起来怎么样?
    • 10..&lt;.maxcase let count where count &gt; 10
    • 添加案例超过10个。如果您的问题由此解决,请将其标记为已接受的答案。
    • 通过这种方式,我相信我的结果会在数组的每次迭代后打印出来......“for array in theArray”我怎样才能做到这一点,以便我得到整个计数,然后基于一旦调用数组,它的总数是否会减少?
    • 我有并且我正在使用不同类型的数组。我想基本上说这里是一个包含 3 个元素的数组。案例:如果数组有 1 到 3 个元素,则打印“数组中有 1 到 3 个元素”。 CASE:如果数组有 5 到 10 个元素,打印“数组中有 1 到 3 个元素” CASE 如果数组超过 10,打印“TOO MUCH”
    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 2021-12-15
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    相关资源
    最近更新 更多