2016-06-24 3 views
0

나는 PHP에 초보자이고 PHP에서 다른 모든 루프를 이해했습니다. 그러나 질문은 입니다. 어떻게 for 루프가 작동하는지 이해할 수 없습니다 예 : 여기에 코드가 있습니다;for 루프는 PHP에서 실제로 어떻게 작동하나요?

$a = 0; 
$b = 0; 

for ($i=0; $i < 5; $i++) { 
    $a += 10; 
    $b += 5; 
} 
echo("At the end of the loop a=$a and b=$b"); 

이 스크립트를 실행하면 a = 50 및 b = 25!

i 값에 i 값을 곱한 값입니까? 10 * 5 = 50과 같습니다.

+1

아니요, '$ a'에 10을 5 번 더합니다. – tkausl

+0

+ = 증가하지 않습니다. 각 루프 반복에 $ a를 10 개 추가하고 $ b, + =에 5를 추가하면이 값을 많이받습니다 ++는 증가합니다. 그래서 10 + 10 + 10 + 10 + 10, 50은 정확히 무엇을 기대합니다. – ArtisticPhoenix

+0

"PHP의 다른 모든 루프를 이해했습니다."- for 루프 문법적 인 설탕을 고려하고 스크립트를 https://3v4l.org/MjXK7과 비교하십시오. – VolkerK

답변

0

루프가 5 회 실행됩니다. 루프를 통과 할 때마다 $a 값에 10을 더합니다. 5 번 그렇게하면 50이됩니다.

0

이것이 작동하는 방식입니다.

달러가 없다고 가정 해 봅시다. 그리고 나는 당신에게 5 일의 잡일을 할 때마다 당신에게 1 달러를 줄 것이라고 말합니다. 그러나, 나는 단지 당신에게 5 달러를 줄 것이다. 처음에 당신은 돈이 없으며, 일별로 5 달러를줍니다. 이제 5 달러가됩니다. 너는 또 다른 일을한다. 나는 너에게 열 다섯을 가져 와서 또 다른 다섯을 준다. 나는 지금 너에게 2 달러를 줬다. 나는 너에게 또 다른 5를 준다. 너는 15를 가진다. 나는 너에게 또 다른 - 20 - 그리고 또 하나를 준다; 너를 25 달러로 데려왔다. 이제 나는 달러를 제 한도로 주었고 루프가 완성되었습니다.

이 이야기에서 나의 달러는 $i 값입니다. 0에서 시작하여 최대 5 일까지합니다. 귀하의 집안일은 매번 추가되는 $b 값입니다.

코드 예 :

for ($dollars=0; $dollars < 5; $dollars++) { 
    $chores += 5; 
} 
+1

그래서 80 달러를 빚지고 있습니다. :) – ArtisticPhoenix

1

당신은 다음

$i=5

$i=0, $a=10, $b=5 

$i=1, $a=20, $b=10 

$i=2, $a=30, $b=15 

$i=3, $a=40, $b=20 

$i=4, $a=50, $b=25 
는 지금 루프가 중지 $a+10$b+5$i <5과 같이하십시오 $i=0 시작 $i is no longer <5 때문에

0

+ = 할당 연산자가 증가하지 않습니다. 그들의 대답에

http://php.net/manual/en/language.operators.assignment.php

내가 코멘트에서 언급 한 바와 같이, 등. + =는 오른쪽의 값을 왼쪽의 값에 더합니다. 그래서, 루프에서의이

  • 단계 0 $ A = 5 (0 + 5)

  • 단계 1 $ A = 10 (5 이전 반복의 종료 값] +5)

  • 추천
  • 단계 2 $ A = 15 (10 이전 반복의 종료 값] + (5)) 등

.... 음의 I

또한 -=*= 등 및 .=을 수행하거나 동일한 종류의 작업을 추가 할 수 있습니다.

0

for 문은 명령문이나 명령문 블록을 몇 번 실행할지 알고있을 때 사용됩니다.

enter image description here

구문 :이니셜 루프 반복의 횟수의 카운터의 시작 값을 설정하는 데 사용된다

for (initialization; condition; increment){ 
    code to be executed; 
} 

. 변수는이 목적으로 여기에 선언 될 수 있으며 일반적으로 변수 이름은 $i입니다.

다음 예는 다섯 번 반복하게하고 루프의 각 패스에서 두 변수의 지정된 값을 변경

-

-

<html> 
    <body> 

     <?php 
     $a = 0; 
     $b = 0; 

     for($i = 0; $i<5; $i++) { 
      $a += 10; 
      $b += 5; 
     } 

     echo ("At the end of the loop a = $a and b = $b"); 
     ?> 

    </body> 
</html> 

이것은 다음과 같은 결과를 생성 할 것이다 At the end of the loop a = 50 and b = 25

0

For loop은 y 조건 루프. 조건을 먼저 평가하므로 조건과 일치하지 않으면 루프와 연결된 명령문 블록이 한 번만 실행되지 않습니다.

이 for 루프 블록 내의 명령문은 5 회 실행되고 $ i 값은 0 ~ 4; 루프가 별도로 실행된다고 상상해보십시오.

$a=0; 
$b=0; 
for ($i = 0; $i < 5; $i++){ 
     echo $a += 10; 
     echo '<br>'; 
} 

그리고 출력이 같은.

10 
20 
30 
40 
50 

지금은 assignment operator x += y를 사용하여 반복 이전 번호 105 추가 각 반복이

5 
10 
15 
20 
25 

같은 다른 루프

for ($i=0; $i < 5; $i++) { 
     echo $b += 5; 
     echo '<br>'; 

} 

그리고 출력.

관련 문제