>  기사  >  백엔드 개발  >  PHP에서 for 루프의 확장된 사용 예에 ​​대한 자세한 설명

PHP에서 for 루프의 확장된 사용 예에 ​​대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-06-23 13:48:172046검색

for 문은 PHP(및 여러 언어)의 루프 제어 부분에서 가장 기본적인 문이라고 할 수 있습니다. 여기서는 for 문의 실행 규칙과 기본 사용법을 다루지 않습니다. 설명문 부분은 PHP 매뉴얼을 참고하세요. 해당 구문은 PHP 매뉴얼에 다음과 같이 정의되어 있습니다:

for (expr1; expr2; expr3)
statement

for 문의 몇 가지 유용한 변형에 대해 이야기해 보겠습니다.

 1. 무한 루프

 첫 번째는 모두가 알고 있는 무한 루프('데드 루프'라고도 함)입니다. 빈 표현식 null은 구문적으로 유효하므로 for 문의 세 가지 표현식을 비워 둘 수 있으며, 이는 중첩된 for 문을 계속 실행하는 효과가 있습니다.

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

무한 루프를 사용하는 작업도 있지만 대부분의 프로그램 작업, 특히 PHP와 관련된 작업에서는 무한 루프를 사용할 때 루프를 종료하는 몇 가지 조건을 추가합니다.

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

  2. 빈 표현식 사용

다음 단계는 초기화 문 expr1에서 null 구문을 사용하는 것입니다. expr1을 비워 두는 가장 일반적인 기능은 더 복잡한 초기화 작업을 완료하는 것입니다.

<?php
if (isset($i)) {
unset($i);
 if ((int) date(&#39;&#39;) < 2008) {
  $i = 0;
 } else {
  $i = 1;
 }
} else {
 $i =3;
}
for (;$i < 10;$i++) {
 echo $i;
}
?>

같은 방식으로 반복 표현식 expr3을 비워 둘 수도 있습니다. 이는 다른 조건에 따라 다른 반복을 호출하는 등 더 복잡한 반복을 작성하는 데에도 사용할 수 있습니다.

for 문의 조건문 expr2가 비어 있으면 위에서 언급한 무한 루프입니다. 물론 루프에서 빠져나올 시점을 결정하기 위해 좀 더 복잡한 조건을 추가할 수도 있는데 여기서는 반복하지 않겠습니다. .

 3. 다중 루프

다중 루프를 사용하여 다중

변수를 제어하는 ​​것도 for 문에서 종종 무시되는 기능입니다. 아래 예에서와 같이 이중 루프는 일반적으로 일반 작업에 사용되며 3개 이상의 루프는 일반적으로 거의 의미가 없습니다.

<?php
for ($i = 0, $j = 10;$i <= 10;$i++, $j--) {
 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 문을 사용하여 일부 작업을 완료할 수도 있습니다. 예를 들어 누적 또는 계승 계산:

<?php
//计算1-5的累加结果,斌值到$j
or ($i = 1,$j = 0; $i <= 5;$j += $i++);
echo $j;
//计算1-5的阶乘结果,斌值到$j
for ($i = 1,$j = 1; $i <= 5;$j *= $i++);
echo $j;
?>

f

위 내용은 PHP에서 for 루프의 확장된 사용 예에 ​​대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.