PHP-循环

1.2 循环

1.2.1 for

for(初始值;条件;增量){
	//循环体
}

注意:循环中千万不能出现死循环

思考:如下代码输出什么

例题一:

<?php
for($i=1;$i<=10;$i+=2){
	echo "{$i}:锄禾日当午<br>";
}
/*
1:锄禾日当午
3:锄禾日当午
5:锄禾日当午
7:锄禾日当午
9:锄禾日当午
*/

例题二:

<?php
for($i=1;$i<=10;){
	
}
//死循环,$i永远等于1,1永远小于10,条件永远为true

例题三

<?php
for($i=1;;$i++){
}
//死循环,只要没有条件都是死循环

例题四

<?php
for(;;){
}
//这是一个经典的死循环

1.2.3 思考题

1、如下代码循环了几次?

for($i=1;$i!=5;$i++){
    
}
//循环了4次

2、在循环N次循环体中,初始值执行了几次?条件执行了几次?增量执行了几次?

初始值执行了1次
条件执行了N+1次
增量执行了N次

3、在循环执行完毕后,$i的值是存在的。

<?php
for($i=1;$i<=3;$i++){
}
echo $i;		//4

1.2.4 while、do-while

语法

while(条件){
}
-------------------------
do{
    
}while(条件)

小结:

1、for、while、do-while可以相互替换

2、如果明确知道循环多少次首先for循环,如要要循环到条件不成立为止选while或do-while

3、先判断再执行选while,先执行再判断选do-while

4、while循环条件不成立就不执行,do-while至少执行一次

1.2.5 例题

1、使用三种循环实现从1加到100

<?php
//1、for循环实现
$sum=0;
for($i=1;$i<=100;$i++){
	$sum+=$i;	//$sum=$sum+$i;
}
echo $sum;

//分析
/**
*
$i			$sum
1			1
2			1+2
3			1+2+3	
4			1+2+3+4
...
100			1+2+3+++100
*/
-------------------------------------------------
//2、while循环
$i=1;
$sum=0;		//保存和
while($i<=100){
	//方法一
	/*
	$sum+=$i;
	$i++;
	*/

	//方法二
	$sum+=$i++;
}
echo $sum;
--------------------------------------------------
    
//3、do-while循环
$i=1;
$sum=0;
do{
	$sum+=$i;
	$i++;
}while($i<=100);
echo $sum,'<br>';	//5050

//可以有如下更改
$i=1;
$sum=0;
do{
	$sum+=$i++;      //++后置
}while($i<=100);
echo $sum,'<br>';	//5050

//可以做如下更改
$i=1;
$sum=0;
do{
	$sum+=$i;
}while(++$i<=100);    //++前置
echo $sum,'<br>';		//5050

小结:

1、for、while、do-while可以相互替换

2、结合++前置和++后置考虑逻辑

1.2.6 多语句表达式

初始值、增量可以由多条语句组成

例题:数字分解

<?php
for($i=1,$j=9;$i<=$j;$i++,$j--){
	echo "10可以分成{$i}和{$j}<br>";
}
//运行结果
/*
10可以分成1和9
10可以分成2和8
10可以分成3和7
10可以分成4和6
10可以分成5和5
*/

小结:初始值、增量可以写多个表达式,但是条件一般只写一个,如果条件写多个,只是最后一个条件起作用

1.2.7 双重循环

1、打印阶梯数字

<?php
for($i=1;$i<=9;$i++){	//循环行
	for($j=1;$j<=$i;$j++){	//循环列
		echo $j,'&nbsp;';
	}
	echo '<br>';
}
//运行结果
1 
1 2 
1 2 3 
1 2 3 4 
1 2 3 4 5 
1 2 3 4 5 6 
1 2 3 4 5 6 7 
1 2 3 4 5 6 7 8 
1 2 3 4 5 6 7 8 9 

2、打印九九乘法表

<style type="text/css">
	table{
		width:980px;
	}
	table,td{
		border:solid 1px #0000FF;
		border-collapse:collapse;
	}
	td{
		height:40px;	
	}
</style>

<table>
<?php
for($i=1;$i<=9;$i++){	//行
	echo '<tr>';
	for($j=1;$j<=$i;$j++){	//列
		echo "<td>{$j}*{$i}=".($j*$i).'</td>';
	}
	echo '</tr>';
}
?>
</table>

运行结果

小结:规则:当前列*当前行

1.28 foreach

foreach循环是用来遍历数组

语法

//语法一
foreach(数组 as 值){
}
//语法二
foreach(数组 as 键=>值){
}

例题

<?php
$stu=['tom','berry','ketty'];
foreach($stu as $v){
	echo $v,'<br>';
}
/**
tom
berry
ketty
*/
echo '<hr>';
-----------------------------------------------------------
foreach($stu as $k=>$v){
	echo "{$k}:{$v}<br>";
}
/**
0:tom
1:berry
2:ketty
*/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP-TP(Request请求类)

    http://www.tpshop.com/home/test/index/id/100?page=10

    cwl_java
  • 系统架构师论文-论虚拟现实技术的应用与发展

    本文介绍了虚拟现实技术的主要技术和应用,并结合作者本人参加的国家重点实验室的自然科学基金项目,重点讨论了基于图像的建模与绘制在虚拟现实中的重要地位与应用,详细分...

    cwl_java
  • Java基础-循环语句

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    cwl_java
  • PTA 社交网络图中结点的“重要性”计算(30 分)

    7-12 社交网络图中结点的“重要性”计算(30 分) 在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解...

    Kindear
  • 半个【弗洛伊德算法】2-3 社交网络图中结点的“重要性”计算 (25分)

    在社交网络中,个人或单位(结点)之间通过某些关系(边)联系起来。他们受到这些关系的影响,这种影响可以理解为网络中相互连接的结点之间蔓延的一种相互作用,可以增强也...

    韩旭051
  • OpenDaylight VTN源码及架构分析

    VTN是opendaylight中负责租户隔离的工程,最近对源码和架构研究了一段时间,现将总结如下。 从VTN架构图我们可以看出,VTN共分为两个模块:VTN ...

    SDNLAB
  • POJ 2606 Rabbit hunt 2780 Linearity 1118 Lining Up 解题报告

    言归正传 题号:2606 Rabbit hunt 2780 Linearity 1118 Lining Up

    owent
  • 天猫新零售最新成绩单:进化为新消费,不只是买买买

    8月29日,在天猫新零售公开课上,天猫晒出了新零售成绩单,从中我们不只是可以看到阿里新零售的落地情况,也能看到整个新零售概念的进化。

    罗超频道
  • Newbe.Mahua 2.0 不再仅仅支持 .Net

    从 2017-03-31 发布 Newbe.CQP.Framework 先行版,到 2018-12-25 发布 Newbe.Mahua 1.15 版本为止。1....

    newbe36524
  • 微信公众平台开发[4] —— ThinkPHP 框架下微信支付

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011415782/article/de...

    泥豆芽儿 MT

扫码关注云+社区

领取腾讯云代金券