For 循环|学习笔记

简介: 快速学习 For 循环

开发者学堂课程【PHP 基础入门课程(下)For 循环】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/710/detail/12617


For 循环


目标:掌握 for 循环的语法结构,熟练使用 for 循环实现代码重复执行

1.概念

for 循环:一种将循环初始条件、循环边界条件和循环条件变更都可以放到循环内部结构里(不是循环体)的循环

.for 循环需要循环初始化条件,但可以在循环结构里

·for 循环需要边界条件,也可以放在循环结构里

.for 循环进行循环条件变更,也可以放到结构里

·for 循环一般用来实现一些固定起始、边界和步长(条件变化的规律)的循环,多与数字有关

.for 语法结构

for(初始化条件表达式:边界判定表达式;条件变更表达式){

循环体

}

注:;不能少

2.步骤

1)确定循环初始化条件

2)确定边界条件

3)确定变化规则(步长)

4)确定循环体

3.示例

输出1-100之间的所有奇数

#确定初始条件:1:$i=1:

#确定边界条件:100:$i <= 100;

#确定条件变化规则:1-100的整数:$i++

#确定循环体:输出变化中的$i:奇数:$1%2==1

for($i = 1;$i <= 100;$i++){

#循环体:找到奇数

if($i % 2 == 1){

#说明是奇数

echo $i;

}

举例操作

<?php

#for 循环

#打印1-100之间的基数

#1、初始条件:$i=1

#2、边界条件:$i<= 100

#3、条件变更方式:$i++

for( $i = 1; $i <= 100;  $i++){

#4、循环体

if($i % 2 == 1){

echo $i,'<br/>';

}

}

运行结果:

image.png

可以看出循环有个特点,要么是一列输出,要么是一行输出。证明他是线性的而不是面性的。

循环嵌套:打印九九乘法表

#打印九九乘法表:一个循环要么打印一行1,2,3,4,5,要么打印一列(<br/>)

#而九九乘法表是一个表格,有行有列:所以单个循环肯定无法完成,需要多个循环共同完成

#分析

#1、确定一个循环:能够打印9行

for($i =1:$i <= 9;$i++){

#9行其实就是一个换行符代表换一行

echo '<br/>';

}

操作实例

#打印九九乘法表#1、打印9行

for($i = 1;$i <= 9;$i++){

echo $i,'<br/>';

}

运行结果:

image.png

#2、确定一个循环:能够输出9列

for($j = 1;$j <= 9;$j++){

echo $j;

}

举例操作

#2、打印9列

for($j = 1;$j <= 9;$j++){

echo $j;

}

需要思考是是出来结果是这样的

image.png

两列九九八十一就出现了

#3、以上两个是独立的循环,彼此没有交集:我们需要一行里就有9列,而不是只有一列:将能够输出9列的循环移入到能输出行的循环中

for($i = 1;$í <= 9;$i++){

#将打印9列的循环移入到能打印行的循环中:实现9行9列输出

for($j = 1;$j <= 9;$j++){

echo $j;

}

#9行其实就是一个换行符代表换一行

echo '<br/>';

实例操作

#打印九九乘法表#1、打印9行

for($i = 1;$i i <= 9;$i++){

#3、将打印列的循环搬进来

for($j = 1;$j <= 9;$j++){

echo $j;

}

echo $i,'<br/>';

}

运行结果:

image.png

这个时候就变成了九行九列。

#4、确定每一个单元的输出:九九乘法表并非一直输出,输出逻辑是:列数不大于行数,从第一列开始输出,第1个数为列号,第二个乘数为行号

/*

1*1=1

1*2=2  2*2 = 4 #第一个数1.2为列数,第二个数2位行数

/*

for($i = 1:$i <= 9;$i++){

#将打印9列的循环移入到能打印行的循环中:实现9行9列输出

for($j = 1;$j <= 9;$j++){

#输出:确保列数不能大于行数

if($i <= $i){

结论添加$j * $i

#打印九九乘法表#1、打印9行

for($i = 1;$i <= 9;$i++){

#3、将打印列的循环搬进来

for($j = 1;$j <= 9;$j++){

echo "$j * $i = " .$j * $i;

}

echo $i,"<br/>';

}

得出结论j不能大于 i,因此还需要做条件

for($i = 1;$i <= 9;$i++){

#3、将打印列的循环搬进来

for($j = 1;$j <= 9;$j++){

#4、输出:判定条件:前面的数不能大于后面的数

if($j <= $i)

echo"$j * $i = " . $j * $i;

}

echo ,'<br/>';

}

结果如图正确

image.png

觉的不好看可以添加空格

if($j <= $i)

echo"$j * $i = " . $j * $i .’ ’;

}

echo ,'<br/>';

}

image.png

怎样去把循环嵌套打印成一个平面的东西,一个循环只能打印一条线,两个循环嵌套就可以打印一个平面了,三个循环嵌套本质上它可以打印立体。这个时候就知道 for 循环该怎么来使用了。

3.流程图解析

以上图输出1-100之间的奇数为例

graph lR

A(循环开始)-->B[初始化条件<br/>Si=1]

B-->c{条件判定<br/>$i <= 100}

C-->|FALSE|F((循环结束))

C-->|TRUE|D[进入循环体<br/>执行循环体]

D-->G[条件变更<br/>$i+-]

G-->C{条件判定<br/>$i <= 100]

image.png

循环开始初始化条件为1,注意只执行一次,条件判定i是否小于等于100,满足条件直接进入循环体,执行完毕之后去找执行条件变更,所以本质和 while 还是一样的,只是写的位置不一样,判定之后又会返回进行条件判定,成功继续执行,101不小于100,结束。判定执行的次数是 n+1,而循环执行的次数和变量的变更都是 n 次。

4.小结

(1)for 循环是可以所有循环参与条件都在 for 循环结构内部的循环

(2)for 循环结构如下

for(表达式1;表达式2;表达式3){

循环体

}

(3)for 循环执行流程

·表达式1:用来初始化条件(只执行一次)

如果初始化条件在外部,该位置可以空出

如果有多个条件需要初始化,该位置可以使用逗号分隔

·表达式2:用来验证条件(起始到边界总次数+1次【最后一次失败循环退出】)

验证通过:进入循环体

验证失败:结束循环

.循环体:执行重复内容(起始到边界总次数)

·表达式3变更微环条件(起始到边界总次数)

(4)for 循环实际通常用来做一些明确次数的循环

举例操作

#遍历数组

$arr =[1,3,4,6,9];

for($key = 0; $key < count($arr);$key++){

echo $arr[$key];

}

count($arr)意味着函数在被不断调用 n 次,所以把他改成

for($key = 0,$len = count($arr); $key < $len;$key++){

这样函数只被调用了一次,是一种优化,效果是一样的。

相关文章
|
2月前
|
JavaScript 前端开发 Java
for 循环学习
【10月更文挑战第4天】
101 5
|
7月前
|
C语言
do-while 循环
do-while 循环
61 1
|
7月前
|
算法
do while循环及练习
do while循环及练习
43 0
|
7月前
while循环和do while循环有什么区别
while循环和do while循环有什么区别
85 0
while循环和do while循环有什么区别?
while循环和do while循环有什么区别?
145 0
三个循环(C)
while语句:while(表达式){},先判断表达式,若符合,则执行循环内容,一个循环后再次判断表达式。
76 0
|
JavaScript 前端开发
For Of 循环
For Of 循环
64 0
|
JavaScript 前端开发
For/In 循环
For/In 循环
71 0
do while 循环
do while 循环
78 1
|
PHP 开发者
Do-while 循环|学习笔记
快速学习 Do-while 循环
Do-while 循环|学习笔记