• OC中的for循环写法:for (int i = 0;i < 100;i++) { NSLog(@"i=%zd",i); }Swift中的for循环写法:let a = 100; for i in 0 ..< a { print("a=\(i)"); }Swiftfor循环不需要i...

    OC中的for循环写法:

    for (int i = 0;i < 100;i++) {
            NSLog(@"i=%zd",i);
        }

    Swift中的for循环写法:

    let a = 100;
    for i in 0 ..< a {
        print("a=\(i)");
    }

    Swift中for循环不需要i的写法:

    let a = 100;
    for _ in 0..<a {
        print("a=\(a)");
    }

    展开全文
  • swift for 循环

    2019-03-19 16:24:10
    swift 4.2 中已经舍弃了传统的C语言的for;;循环,替换成更能符合本身语言特性的新形式。 第一种 for - in 这一种是最常用的,可以遍历所有的集合类。如下: func testFor(){ let list = [1,2,3,4]; for idx ...

    在swift 4.2  中已经舍弃了传统的C语言的for;;循环,替换成更能符合本身语言特性的新形式。

    第一种 for - in

    这一种是最常用的,可以遍历所有的集合类。如下:

    func testFor(){
        let list = [1,2,3,4];
        for idx in list {
            print("idx =\(idx)");
        }
        let dict = ["a":1,"b":2,"c":3];
        for item in dict {
            print("item = \(item)");
        }
    }

    在控制台输出如下:

    idx =1
    idx =2
    idx =3
    idx =4
    item = (key: "a", value: 1)
    item = (key: "c", value: 3)
    item = (key: "b", value: 2)

    当遍历字典的时候,会自动转换成元组,包含了key和value,我们也可以自己来通过写一个元组来接收如下:

        let dict = ["a":1,"b":2,"c":3];
        for (key,value) in dict {
            print("key: \(key) value : \(value) ");
            
        }

    还有一种区间遍历如下:

        for idx in 0...3 {
            print("idx =\(idx)");
        }

    对于这种遍历是swift一个特性,0...3表示,从0到3包含3,如果是0..<3,是0到3但是不包含3。

    还以反向遍历如下:

        
        let list = [1,2,3,4];
        for idx in list.reversed() {
            print("idx =\(idx)");
        }

    有时候我们需要知道当前遍历数组的下标,那么我们就可以用下列形式:

        let list = ["A","B","C","D"];
        for item in list.enumerated() {
            print("idx =\(item)");
        }
        
        for (idx,item) in list.enumerated() {
            print("下标:\(idx) 值:\(item)")
        }

    第二种,跨步遍历,这个是swift另外一个特性。举个例子:

        for idx in stride(from: 0, to: 10, by: 2) {
            print("idx = \(idx)");
            
        }

    这个意思是说从0到10,每隔2个遍历一次,输出的结果是:

    idx = 0
    idx = 2
    idx = 4
    idx = 6
    idx = 8

     

    展开全文
  • swift中,最常使用的for循环是for-in结构,并且可以和范围(...和...&lt;)配合使用 for i in 0..&lt;5 { print(i) } 控制台输出: 0 1 2 3 4 使用for-in循环遍历数组 let array = ["宝马&...

    在swift中,最常使用的for循环是for-in结构,并且可以和范围(...和...<)配合使用

    for i in 0..<5 {
      print(i)
    }

    控制台输出:

    0
    1
    2
    3
    4
    

    使用for-in循环遍历数组

    let array = ["宝马", "奔驰", "奥迪", "兰博基尼", "凯迪拉克", "法拉利"]
    for arrayItem in array {
       print(arrayItem)
    }

    控制台输出:

    宝马
    奔驰
    奥迪
    兰博基尼
    凯迪拉克
    法拉利

    获取下标的遍历方法:

    let array = ["宝马", "奔驰", "奥迪", "兰博基尼", "凯迪拉克", "法拉利"]  
    for (index, value) in array.enumerated() {
      print("下标:\(index)值=\(value)")
    }

    控制台输出:

    下标:0值=宝马
    下标:1值=奔驰
    下标:2值=奥迪
    下标:3值=兰博基尼
    下标:4值=凯迪拉克
    下标:5值=法拉利

    使用for-in循环遍历字典:

    let dictionry = ["name":"小明", "age": "22", "sex": "男"]
    for (key, value) in dictionry {
        print("\(key) is \(value)")
    }

    控制台输出:

    name is 小明
    age is 22
    sex is 男

    遍历字段中的所有键或值

    let dictionry = ["name":"小明", "age": "22", "sex": "男"]
    for key in dictionry.keys {
        print("key = \(key)")
    }
    for value in dictionry.values {
         print("value= \(value)")
    }

    控制台输出:

    key = name
    key = age
    key = sex
    value= 小明
    value= 22
    value= 男

    注意:在swift2.2中可以使用C语言风格的for循环:  但是这种写法在swift3.0中已经被删除

    for var in = 0; i < 5, i++ {
        print(i)
    }

     

     

    展开全文
  • Swift for循环语句用法

    2017-11-23 22:45:39
    Swift for 语句  一般来说,swift循环是递增式遍历。当然各种循环swift都能办到。但其大多采用关键字形式实现,大部分开发者更喜欢直接使用C式循环代码。在swift3.0后,C语言形式被彻底废弃,因此从低...

    Swift for 语句


          一般来说,swift循环是递增式遍历。当然各种循环,swift都能办到。但其大多采用关键字形式实现,大部分开发者更喜欢直接使用C式循环代码。在swift3.0后,C语言形式被彻底废弃,因此从低版本升上来的代码如果是swift风格写法,按照提示基本可以直接fix。但如果很多循环实现都是基于C语言形式,那不得不讨论一下如何拯救这个可怕的习惯了。swift的循环语言特性跟python最为接近。所以,大多数python循环能处理的情况,swift都能办到。

    1:如何遍历一个字典或者数组?

          首先要提的是swiftfor..in..语法,这个语法在python当中被称之为迭代。用于数组,字典之类的数据内容遍历。从作用上分析,是直接将数组元素赋值给变量,并取出,无需通过数组下标来取值。而针对于字典,除了取出key值,我们还可以同时取出关键字。具体代码如下


    let list = [1,3,5,7,"string test"]

    for i in list{

        print(i)

    }

    let dict = ["name":"key name","name1":"key1 name","name2":"key 2 name"]

    for key in dict{

        print(key)

    }

    }

    2:也许,我仅仅是需要一个计数器?

          更多时候,循环变量被用于约束循环的次数或者做为int类型进行引用,值得一提的是,swift支持直接区间遍历。在3.0版本之前,python的区间语法range关键词适用。在3.0以后。swift不推荐使用。并且基于自身语言特性,在使用时,需要额外加关键字。那么,我们如何用swift带来的语法糖写出漂亮的for循环呢 代码如下:


    for i in 1..<10{

        print(i)

        // 打印结果为1-9

    }

    for i in 1...10{

        print(i)

        //打印结果为1-10

    }

     

    for i in Range(start: 1,end: 10){

        print(i)

        // 打印结果为1-9 不推荐使用

    }

      3help 我真的需要递减! 

        这也许是swift的一个大坑了,当然解决方式很容易。只需要一个关键字即可实现,swift3.0之后稍有变化。对要遍历的区间调用reverse()方法,即可实现for循环的反向遍历,代码如下


    for i in (0...10).reverse(){

        print(i)<br>    // 打印结果为10-0

    }

      4:这就结束了吗

        当然不是啦,从语言特性上来上说,python对数组和循环的处理是最令人觉得舒适的。而在循环的处理上,几乎涵盖了python的所有特性,且大多也是以函数调用的方式来处理的。下面就要介绍一下平时可能会用到的一些方法。

    4.1.enumerate

       如词,这是为遍历对象调用一个枚举方法,在对数组等结构进行遍历时,我们偶尔需要知道每次遍历的索引,那么就需要用到enumerate了,其返回对象是一个元组,形式为(xy),x代表遍历的索引值,y代表遍历的元素。代码如下:


    for (index, i) in (1...10).enumerate(){

        print(index)// 遍历索引

        print(i) // 遍历元素

         

    }

    4.2 filter

         也许,你想要在循环就过滤掉一系列毫无意义的数据?,swift提供在循环时直接过滤的方法,代码如下:


    for i in (1...10).filter({ i in i % 2 == 0}) {

        print(i)

        //输出结果为1-10之间的偶数

    }

    ///////////补充一个漂亮的语法糖///////////

    for i in (1...10).filter({ $0 % 2 == 0}) {//swift闭包可以省略参数且用$0匿名,第二个参数则用$1,以此类推

        print(i)

        //输出结果为1-10之间的偶数

    }


    展开全文
  • 4.4 Swiftfor循环语句

    2016-12-18 11:07:21
    /**  for循环    for 初始化语句; 条件; 递增语句  {  // 执行指令  }    */    var sum = 0  var i

            /**

             for循环

             

             for 初始化语句; 条件; 递增语句

             {

                // 执行指令

             }

             

             */

            

            var sum = 0

            var i = 0

            

         

            /**

             C-style for statement has been removed in Swift 3

             C语言的这种for 循环已经被 swift3.0 移除了

             */

    //        for var i = 0; i <= 10; i = i+1

    //        {

    //            sum += i

    //        }

            

            // ,退出条件永远为假

    //        for ;;

    //        {

    //            print("hello world")

    //        }

            

            

            // 这个不对

    //        for (i, in 10 ){

    //            sum += i

    //        }

            

            for i in 0...10

            {

                sum += i

            }


            print("--------->")

            print(sum);

            

            

            /**

             Swift 3.0 版本将会去掉沿用已经的 C 风格循环语法, 又是向现代开发语言的一次迈进,

             咱们就来看看没了 C 风格循环我们还有什么选择, 

             看过之后你会不会感觉 C 风格循环在 Swift 中确实有点多余呢?

            

             关于 C 风格循环, 不我们过多介绍了, 就是类似这样的语句:

             let numberList = [1, 2, 3, 4, 5]

             for var i = 0; i < numberList.count; i++ {

             

             }

             

             如今这样的语法在新版本的 Swift 中即将成为历史了,

             C 风格的循环语法可能是大家最熟悉的, 大家会不会觉得突然去掉这个语法有些不适应呢? 

             咱们再来看看 Swift 3 中的替代方案。

             */

            

            


            /**

             for .. in 语法

             第一个替代方案, 我们可以使用 for .. in 这样的语法:

             */

            let numberList = [1,2,3,4,5]

            var result = ""

            for num in numberList {

                result += "\(num) "

            }

            

            print("--------->")

            print("result==\(result)");


            

            

            

            

            /**

             如果我们想知道每次遍历的索引怎么办呢, 还有一种方法:

             num.offset num.element 分别代表对应的索引和元素

             

             enumerate 函数其实就是对 numberList 数组做了一个变换,

             原来它是一个 Int 类型的数组,经过变换后,成为了 (Int, Int) 元组类型的数组

             num 是一个元组。

             */

            for num in numberList.enumerated() {

                print("num.offset==\(num.offset)")

                print("num.element==\(num.element)")

    //            result += "[\(num.index)]\(num.element) "

            }



            

            

            

            /**

             上面的num 相当于 (index, value)

             */

            for (index, value) in numberList.enumerated()

            {

                // 这样子遍历,可以得到数组的值和下标

                print("index:\(index) = \(value)")

            }

            

            

            /**

             

             是不是这么回事呢? 查看 enumerate 方法的文档后, 看到它的定义是这样的:

             func enumerate() -> EnumerateSequence<array<element>></array<element>


             

             比我们想象的要复杂些, EnumerateSequence 是个什么鬼, 让我们再来看看它的文档定义:

             

             The SequenceType returned by enumerate(). EnumerateSequence is a sequence of pairs (n, x), where ns are consecutive Ints starting at zero, and xs are the elements of a Base SequenceType

             

             仔细看下, 其实跟我们理解的还是差不多的, 它只不过是对集合类的一个集成, 这个集合每一项是一个元组 (n, x) , n 代表索引, x 代表数组元素。

             */



            


            /**

             那么,我们还可以做点更有意思的事情:

             调用 enumerate 之后再调用 reverse 方法, 我们就可以对一个数组进行反向遍历。

             

             SequenceType

             http://swiftdoc.org/v2.2/protocol/SequenceType

             */

            for (index, item) in numberList.enumerated().reversed() {

                print("index==\(index), \(item)")

            }

            


            print("--------------->")

            for (index, item) in numberList.enumerated().filter({ (index, item) in index % 2 == 0})

            {

                print("index==\(index), \(item)")

            }

            

            


            

            

            

            /**

             区间(Range)循环

             除了刚才咱们说的这些, Swift 还提供了更方便的循环语法, 叫做 Range 循环。 比如这样:

             */

            var rs = ""

            for i in 0...10 {

                rs += "\(i)"

            }

            

            print("--------------->")

            print(rs)

        

            /**

             这个语句会输出 0 10 之间的所有数字,

             0…10 这个表示 Range 区间的范围。 

             当然,对于我们刚才的数组遍历来说, 一般数组索引都是数组长度减去 1

             用这个区间处理起来就会比较麻烦, 不过好在 Swift 给我们提供了另外一种 Range 方法:


             */

            for i in 0...(numberList.count-1)

            {

                print("i===\(i)")

            }

            

            


    展开全文
  • for循环Swift 2.1 及其之前的版本中可以使用,在Swift 2.2 版本中使用会提出警告,在如今的Swift 3.0中,for循环被移除。当你在程序中使用for循环时会报错并提示你改成for-in循环。for-in循环可以用来遍历一个范围...
  • OC中常用的普通for循环 for(int i=0;i&lt;10;i++){}在Swift3.0已经移除掉了,现在Swift用的for in 循环很具有Swift特色,举例如下: for i in 0...10 { //0...10表示包含头尾的0到10之间所有的整数 //0..&...
  • 看了许多关于Swift for循环的文章,发现基本上都是正序的for循环,对于逆序的我一直使用while循环,直到我发现了这个方法。。。 for i in (0...10).reversed() { print(i) } 用这个就可以倒序for循环了 ...
  • -for循环 func demo1() {    // for 变量 in 范围 { // 代码实现 }  // 0..  // 注意:..  for i in 0..  print(i)  }  打印结果自行打印  print("---")
  • Swift 中的 for循环for后的圆括号可以省略 只能以bool作为条件语句 如果只有条指令for后面的大括号不可以省略 for后面的三个参数都可以省略, 如果省略循环保持语句, 那么默认为真 //OC: int sum = 0; for (i
  • OC中的for循环写法: for (int i = 0;i < 100;i++) { NSLog(@"i=%zd",i); } Swift中的for循环写法: let a = 100; for i in 0 ..< a { print("a=\(i)"); } Swiftfor循环不需要i的写法...
  • swift forfor-in循环

    2016-01-14 18:31:02
    // for 循环包括 for循环、for-in 循环   // 1、for-in 循环用于执行一组语句中的每一项,包括范围(range)、序列(sequence)、集合(collection)和进展(progression)。    //for-in循环去迭代...
  • swift for循环、while循环 、if判断、switch开关 代码示例
  • // Playground - noun: a place where people can play import UIKit //--------------------------------------------------------------------------...// 传统的for循环方式在swift中同样支持 var num = 0 for(...
  • 现在有一个需求:需要加载本地plist文件中的数据,数据格式如下图所示: 即:数组里存放2个数组,然后这2个数组又分别存放几个字典。 要加载这些数据你可能首先会想到的就是...第一种方式:双层for循环 le...
  • for和while循环是在执行循环体之前循环之前测试循环条件,而repeat while是在执行循环体之后测试循环条件。这就意味着for和while循环可能连一次循环体都未执行,而repeat while将至少执行一次循环
  • swift3 for 反序循环

    2017-03-08 18:37:57
    swift2 ,oc.上 for递减不能用了现在找到一下两个方法。1.for i in (0...10)....2.for i in stride(from: 4, through: 0, by: -1) { print(i) } Swift 的 stride 函数返回一个任意可变步长 类型值的序列. stride
  • 我是刚刚学习swift语言,求各位大大帮忙!不尽感谢!最简单的例子想要在for循环中每隔1秒输出,该如何改写如下代码? for i in "helloSwift"{ Print (String(i)) }
  • 循环 OC风格的 for // 传统写法 for var i = 0; i 10; i++ { print(i) } Swift风格的 for // 遍历 0 ~ for i in 0..10 { print(i) } print("---") // 遍历 0 ~ 10 for i in 0...10 { print(i) } 阶段性小...
  • 2019独角兽企业重金招聘Python工程师标准>>> ...
1 2 3 4 5 ... 20
收藏数 9,785
精华内容 3,914
关键字:

4 for循环 swift