- 操作对象:一个数组或散列
- 作用:利用控制结构读取数组或散列中的元素
for控制结构
- 语法
for(初始化式;条件;表达式)
{
执行语句;
}
执行过程:
- 1.执行初始化式
- 2.判断条件是否真
真---执行语句
假---结束整个for循环 - 3.表达式求值(一般是条件判断条件发生变化)
- 4.重复第二步和第三步,直到判断条件为假,循环则结束
人为干预
next
- 定义:跳至本次循环的结束为止,开始下一个循环
last
- 定义:调至循环的最后位置,结束整个循环
-
示例:打印值小于60的元素
示例
foreach控制结构
- 是for循环结构的一种变体
- foreach循环逐个遍历列表中的值,依次迭代循环过程
- 语法
foreach 变量(列表)
{
执行语句;
} - 区别:可以确保所有的元素都可以读取到而且不会超出,简洁
-
示例:打印值大于60的元素
示例
- 过程:从第一个元素开始,如果item大于60就打印item的值,然后将item改为150,否则不打印item只改为150,接着进行下一个循环,即读取下一个元素;直到读取完array中的数后打印write's result;接着打印array中的所有元素,其中所有元素都是150。
- 这个示例说明,在foreach里的赋值是将元素的地址引用,修改item等于修改array里元素的值,注意
而一般写操作是要通过数组名+数组下标才可以
默认变量的使用
-
$_可以取得perl中的默认变量
示例
- foreach后面只跟了列表,没有定义变量,则成为了默认变量$_
- 减少体力活
说明
- for循环严格按照从左到右的顺序
- foreach取得元素并非按照先后顺序,而是随机的
- 如果想要排序取出,可以用sort先对元素进行排序,然后取出
sort{$a <=> $b} @array1;
sort{$a cmp $b} @array2;
- 按照从小到大进行排序,这里要求array1都是数字,array2都是字母
- 同样可以用last 和next
- foreach比for循环常用,默认使用foreach
网友评论