[转]swift3.0 倒序for循环

[转]swift3.0 倒序for循环,第1张

看了许多关于 Swift for循环的文章,发现基本上都是正序的for循环,对于逆序的我一直使用while循环,直到我发现了这个方法。。。

还有另一种比较优雅而且装X的方法:

Swift 的 stride 函数返回一个任意可变步长 类型值的序列。可变步长类型是可以设置偏移量的一维标量。

他有两个变种:

stride(from:3, to:0, by:-1) 表示3,2,1

stride(from:3, through:0, by:-1) 表示3,2,1,0

转自:
swift30 倒序for循环

为什么要嵌套呢,半个循环就搞定了呀
daoguolai(charstr)
{
int i,j; char c;
for(j=strlen(str), j--; i<j; i++,j--) //两头向中间,到一半就结束了
{ c=str[i]; str[i]=str[j]; str[j]=c;}
}
//其实串倒过来是有一个标准库函数的,叫什么来着,一会没想起

第一个for循环是对数组a赋值,分别为1, 3, 5
第二个for循环是顺序输出数组a中的值,即1, 3, 5
第三个for循环就是把数组a中的值倒序数出来,即从a[29],a[28]a[0],即59,1。

不用三个循环,你想复杂了,当前页是$page,那么循环从$start到$stop,开始值$start为$page-5再微调,循环结束页$stop为$page+5的微调,先计算这两个变量,然后一个循环就解决问题了。大致逻辑如下:

//用变量 $page 、 $page_cnt 推到出 $start 、 $stop
$start = $page - 5;
$stop = $page + 5;
if ($start<1){
    $stop-=$start;
    $start=1;
}
if ($stop>$page_cnt){
    $start-=$stop-$page_cnt;
    $stop=$page_cnt;
}
if ($start<1) $start=1;
for ($i=$start; $i<=$stop; $i++){
    
}

Sub 试试()

Dim i%  '声明变量i为整数

For i = 2 to 50 Step 1

'中间写你需要添加的命令,想做什么事。

Next

End sub

提示:

一般情况下,会声明变量为整数,不过也不一定,根据你的需要去声明。

Step是步长,你可以理解为每次的步子迈多大,例如:

Step 1 是步长为1,循环时,i依次变化为2、3、4、5

Step 2 是步长为2,循环时,i依次变化为2、4、6、8

当步长缺省时,默认步为1时,所以当步长为1时可以省略不用写步长,可直接写为

For i = 2 to 50

Next

步长也可为负数,即倒序循环,例如

For i = 50 to 2 Step -1

Next


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13369544.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-23
下一篇 2023-07-23

发表评论

登录后才能评论

评论列表(0条)

保存