上一期我们学习并练习了Rust的复合基本数据类型,在练习中我们定义了一个数组用于存储月份的中文名称,现在有一个需求,需要把月份的中文名按顺序打印到控制台,也就是把months数组里的所有元素按顺序输出到控制台:
当然我们可以使用12条println语句一条一条获取并打印months中的元素,现在是一个只有12条元素的数组,如果是一个有100条1000条元素的数组,还这么写就不现实了吧?
那有没有一种更简单的方式呢?
我们可以先生成一个从0到month数组长度的区间,然后从这个区间里一条一条里取出元素并做为months数组的索引取出月份中文名并输出到控制台。
在Rust中怎么实现呢?生成一个从0到month数组的区间我们可以使用0..months.len()实现,从这个区间中一条一条取元素我们可以使用for
I in 0..months.len 实现,我们可以先把i的值打印到控制台感受下:
接下来我们只需要把i做为索引一个一个取出月份的中文名就可以了吧?
修改好后保存退出,使用cargo run再运行一下:
可以看到在命令控制台已经按需求输出了月份的中文名。
这里为了遍历months数组我们使用了一个区间,for循环不但可以遍历区间还可以遍历迭代器,我们可以调用months的iter()方法获取迭代器,这时i就是一个一个的月份中文名了。修改好后保存退出,我们运行看下效果:
在rust中类似for循环的语句还有loop和while,loop会持续执行直到遇到遇到break;while每次判断条件表达式的值是否为真,如果为真就执行代码块,如果为假就停止执行。
大家可以自己试一下如果遇到问题欢迎通过平台给我们留言。