搜索
首页后端开发php教程PHP中for循环语句的几种变型_PHP
PHP中for循环语句的几种变型_PHPJun 01, 2016 pm 12:30 PM
eechofor使用可以循环无限表达式语句

  for 循环是 PHP 中最复杂的循环结构。它的行为和 C 语言的相似。 for 循环的语法是:

for (expr1; expr2; expr3)
statement

  第一个表达式(expr1)在循环开始前无条件求值一次。

  expr2 在每次循环开始前求值。如果值为 TRUE,则继续循环,执行嵌套的循环语句。如果值为 FALSE,则终止循环。

  expr3 在每次循环之后被求值(执行)。

  每个表达式都可以为空。expr2 为空意味着将无限循环下去(和 C 一样,PHP 认为其值为 TRUE)。这可能不像想象中那样没有用,因为经常会希望用 break 语句来结束循环而不是用 for 的表达式真值判断。

  考虑以下的例子,它们都显示数字 1 到 10:

/* example 1 */

for ($i = 1; $i echo $i;
}

/* example 2 */

for ($i = 1; ; $i ) {
if ($i > 10) {
break;
}
echo $i;
}

/* example 3 */

$i = 1;
for (;;) {
if ($i > 10) {
break;
}
echo $i;
$i ;
}

/* example 4 */

for ($i = 1; $i ?>

  当然,第一个例子看上去最正常(或者第四个),但用户可能会发现在 for 循环中用空的表达式在很多场合下会很方便。

  PHP 也支持用冒号的 for 循环的替代语法。

for (expr1; expr2; expr3):
statement;
...
endfor;

  for语句可以说是PHP(同时也是多种语言)的循环控制部份最基本的一个语句了,for语句的执行规律和基础用法在这里就不多说。PHP手册中对它的语法定义如下:

for (expr1; expr2; expr3)
statement


  下面说说for语句几种有用的变型。


  1、无限循环

  首先是人尽皆知的无限循环(亦可称“死循环”)。由于空表达式null在语法上是有效的,所以我们可以把for语句的三个表达式留空,这样就会产生不断执行for嵌套语句的效果。

for (;;) {
//放置需要不断执行的语句
}
?>

  虽然有一些任务会使用到无限循环,但是大多数程序任务,特别是PHP所能涉及的领域,在使用无限循环时都会添加一些终止循环的条件。

for (;;) {
//如果是公元2199年,则跳出循环
if (date('Y') == '2199') {
break;
}
}
?>

  2、使用空表达式

  接下来就是说说在初始化语句expr1中使用null语法,留空expr1最常见的作用就是完成更为复杂的初始化工作。

if (isset($i)) {
unset($i);
if ((int) date('') $i = 0;
} else {
$i = 1;
}
} else {
$i =3;
}

for (;$i echo $i;
}
?>

  同样道理,迭代表达式expr3也可能留空,也可以利用这点编写更为复杂的迭代式,比如说根据不同的条件调用不同的迭代式。

  而for语句中的条件语句expr2留空则是上面所说的无限循环,当然也可以添加一些更为复杂的条件去判断什么时候跳出循环,在此不在重复。

  3、多重循环

  使用多重循环来控制多个变量也是在for语句中使经常被忽略的一个特性。如下面的例子,在一般的任务中用到的一般会是双重循环,三重以上的循环一般意义不大。

for ($i = 0, $j = 10;$i echo "$i $j = 10\r\n";
}
?>

以上代码将输出:
0 10 = 10
1 9 = 10
2 8 = 10
3 7 = 10
4 6 = 10
5 5 = 10
6 4 = 10
7 3 = 10
8 2 = 10
9 1 = 10
10 0 = 10

  4、更为复杂的表达式

  如果把for语句的三个表达式写得复杂一些,则可以用于优化算法。甚至可以使用没有循环体的for语句来完成一些任务。比如计算累加或阶乘:

//计算1-5的累加结果,斌值到$j
for ($i = 1,$j = 0; $i echo $j;

//计算1-5的阶乘结果,斌值到$j
for ($i = 1,$j = 1; $i echo $j;

?>

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Go语言中的循环和递归的比较研究Go语言中的循环和递归的比较研究Jun 01, 2023 am 09:23 AM

注:本文以Go语言的角度来比较研究循环和递归。在编写程序时,经常会遇到需要对一系列数据或操作进行重复处理的情况。为了实现这一点,我们需要使用循环或递归。循环和递归都是常用的处理方式,但在实际应用中,它们各有优缺点,因此在选择使用哪种方法时需要考虑实际情况。本文将对Go语言中的循环和递归进行比较研究。一、循环循环是一种重复执行某段代码的机制。Go语言中主要有三

python中使用矢量化替换循环python中使用矢量化替换循环Apr 14, 2023 pm 07:07 PM

所有编程语言都离不开循环。因此,默认情况下,只要有重复操作,我们就会开始执行循环。但是当我们处理大量迭代(数百万/十亿行)时,使用循环是一种犯罪。您可能会被困几个小时,后来才意识到它行不通。这就是在python中实现矢量化变得非常关键的地方。什么是矢量化?矢量化是在数据集上实现(NumPy)数组操作的技术。在后台,它将操作一次性应用于数组或系列的所有元素(不同于一次操作一行的“for”循环)。接下来我们使用一些用例来演示什么是矢量化。求数字之和##使用循环importtimestart

5个必备的Python入门实例代码5个必备的Python入门实例代码Jan 13, 2024 am 08:39 AM

Python入门代码:学习必备的5个实例Python是一种简单易学的高级编程语言,广泛用于数据分析、机器学习、网络爬虫等领域。对于初学者来说,掌握一些基本的Python代码是很重要的。本文将介绍5个简单的实例代码,帮助初学者快速入门Python编程。打印Hello,World!print("Hello,World!")这是Python

如何处理PHP循环嵌套错误并生成相应的报错信息如何处理PHP循环嵌套错误并生成相应的报错信息Aug 07, 2023 pm 01:33 PM

如何处理PHP循环嵌套错误并生成相应的报错信息在开发中,我们经常会用到循环语句来处理重复的任务,比如遍历数组、处理数据库查询结果等。然而,在使用循环嵌套的过程中,有时候会遇到错误,如无限循环或者嵌套层数过多,这种问题会导致服务器性能下降甚至崩溃。为了更好地处理这类错误,并生成相应的报错信息,本文将介绍一些常见的处理方式,并给出相应的代码示例。一、使用计数器来

foreach和for循环的区别是什么foreach和for循环的区别是什么Jan 05, 2023 pm 04:26 PM

区别:1、for通过索引来循环遍历每一个数据元素,而forEach通过JS底层程序来循环遍历数组的数据元素;2、for可以通过break关键词来终止循环的执行,而forEach不可以;3、for可以通过控制循环变量的数值来控制循环的执行,而forEach不行;4、for在循环外可以调用循环变量,而forEach在循环外不能调用循环变量;5、for的执行效率要高于forEach。

如何解决Python的循环条件错误?如何解决Python的循环条件错误?Jun 24, 2023 pm 07:50 PM

Python是一门流行的高级编程语言,非常实用和灵活。但是,在使用Python编写循环时,有时会遇到循环条件错误的问题。本文将介绍Python中循环条件错误的原因和解决方法。1.循环条件错误的原因循环条件错误通常是由于变量值的错误或逻辑错误引起的。具体表现为:变量没有正确地更新。如果循环中的变量没有正确更新,循环条件将始终保持原样。条件表达式格式错误。如果条

PHP8.0中的multi-catch语句PHP8.0中的multi-catch语句May 14, 2023 pm 01:51 PM

随着Web应用程序的发展,PHP语言在Web开发中得到了广泛应用。而在PHP8.0版本中,一个新的语言特性被引入——multi-catch语句。什么是multi-catch语句?在先前的PHP版本中,对于多个异常类型的处理,开发人员需要写多个catch语句。例如,如下代码块展示了对两种不同异常的处理:try{//Somecodethatmay

如何解决Python的循环变量不规范错误?如何解决Python的循环变量不规范错误?Jun 24, 2023 pm 07:15 PM

在Python中,循环是非常常见的编程结构。但是,在编写循环时,有时候我们会犯一个很常见的错误:循环变量不规范。这种错误会导致程序崩溃或者出现其他异常。本文将介绍如何解决Python的循环变量不规范错误。什么是循环变量不规范错误?在Python中,循环变量是在循环过程中所使用的变量。如果我们在循环中对循环变量进行了不规范的操作,就会出现循环变量不规范错误。例

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境