您的位置:首页 > 移动开发 > Swift

[Swift]语法基础:for循环的使用

2016-08-02 11:37 525 查看
学过C语言的都知道,for循环的使用方法,标准的C-Type的for循环,格式如下:

for(int i = 0 ; i < 10; i++){

// 你需要做的操作
}

在OC中还有一个用于遍历集合的for-in循环,其格式为:

for (NSString *string in array) {

NSLog(@"%@",string);
}

那么,在swift中的for循环又是怎样的呢?

在swift中for循环变得更加强大灵活,写法上也有以上两种方式:

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

}

for i in 0..<10 {

}

只不过,in关键字后可以跟一个区间,"..<"是不包含10的,"..."是包含10的;

但是,在最新的swift中,使用C-Type格式for循环时,Xcode会有警告:



提示我们改为for-in循环;

但是,for-in循环的步长是1,如果我们想每次循环加2怎么办呢?

这就用到了下面这个函数:

stride(to: <Int>, by: <Distance>)

调用者: 就是索引的开始数字,例如:0;

参数to: 就是最大数值,不包含此数值,例如:10;

参数by: 就是步长,每次改变的大小

for i in 0.stride(to: 10, by: 2) {

//
print(i)
}


这样控制台就会输出:

0
2
4
6
8

当然,如果需要包含最大的数值,可将函数的参数修改一下:

stride(through: <Int>, by: <Int>)

for i in 0.stride(through: 10, by: 2) {

print(i)
}

控制台会输出:

0
2
4
6
8
10

包含了最大的临界值10.

以上,都是从小到大递增的,能不能递减呢?

答案是可以的,只需要用最大的数值去调用stride方法,传入一个较小的结束参数,步长改为负数即可,例如:

for i in 10.stride(through: 0, by: -2) {

print(i)
}

控制台输出:

10
8
6
4
2
0


(完)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息