swift中 forEach 和 forIn 循环的区别

Swift 提供了forEach循环和forIn循环:

class Car {
    var carArray = ["Audi","BWM","Bench"]
    
    func printUsingForLoop(){
        for car in carArray {
            print("car",car)
        }
    }
    
    func printUsingForEach(){
        carArray.forEach{ (car) in
            print("car",car)
        }
    }
}

let car = Car()
car.printUsingForLoop()
print("**********************")
car.printUsingForEach()

当用这两种方法循环数组的时候,如果没有其它操作,结果是一样的:

image.png

然而,这两个方法在使用的时候会有一些区别需要注意:

1.在 forEach循环中,你不能使用break 或者continue 跳出当前的循环,会出现语法错误。而在forIn 循环中可以使用:

image.png

2.在ForIn 循环中使用return的话,会立即跳出当前的循环体。然而在forEach中,还会继续遍历剩余元素。

class Car {
    var carArray = ["Audi","BWM","Bench"]
    
    func printUsingForLoop(){
        for car in carArray {
            print("car",car)
            if(car == "Audi")
            {
               return
            }
        }
    }
    
    func printUsingForEach(){
        carArray.forEach{ (car) in
            print("car",car)
            if(car == "Audi")
            {
                return
            }
        }
    }
}

let car = Car()
car.printUsingForLoop()
print("**********************")
car.printUsingForEach()
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 在swift中,我们经常会用到的两种快速遍历的方法,一种是最常见也是最常用的for ... in ..., ...
    langkee阅读 27,312评论 4 33
  • 控制流 for循环 for-in for while循环 while repeat-while 条件语句 if s...
    zhenyu54阅读 922评论 0 0
  • Swift提供了多种控制流声明。包括while循环来多次执行一个任务;if,guard和switch声明来根据确定...
    BoomLee阅读 2,012评论 0 3
  • 86.复合 Cases 共享相同代码块的多个switch 分支 分支可以合并, 写在分支后用逗号分开。如果任何模式...
    无沣阅读 1,480评论 1 5
  • Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行...
    穷人家的孩纸阅读 735评论 1 1