happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.

반복문 - FOR문

반복문이라함은 1부터 100까지 누적되는 합을 구하거나 구구단 2~9단까지 출력하거나 할 때 사용됩니다 .

종류에는 for문, while문, do-while문이 있습니다.

for문 부터 알아볼까요? for문을 알려면 간단하게 1부터 10까지 출력해보는 소스를 구현해 보면 이해가 쉽습니다. 물론 실전으로 가면 여러가지 경우들이 있는데요. for문은 많이 사용합니다. 잘 알아두셔야 해요~!!

1 ~ 10을 줄을 바꿔가면서 직접쓰려면 아래와 같이 해야겠죠?

<?php
    echo "1 <br />";
    echo "2 <br />";
    echo "3 <br />";
    echo "4 <br />";
    echo "5 <br />";
    echo "6 <br />";
    echo "7 <br />";
    echo "8 <br />";
    echo "9 <br />";
    echo "10 <br />";
?>

위와 같이 쳐야 하지만

for문을 이용하면 소스를 굉장히 줄여 사용할 수 있습니다.

<?php
    for ($a = 1; $a <= 10; $a++) {
        echo " $a <br />";
    }
?>

위와같이 3줄로 해낼수가 있습니다.

그러면 수행과정을 알아볼까요?

<?php
    for($a = 1; $a <= 10; $a++){
      echo " $a <br />";
    }
?>

for($a = 1; $a <= 10; $a++)여기에 보면 3개의 명령문들이 보입니다. 순서대로 (변수선언,조건,증감식)

변수 $a=1을 선언하였다. 즉 a에 1을 대입

그렇다면 조건 $a <= 10 에서 참, 거짓을 구분한다.

참이라면

echo "$a <br />" ; 를 실행한다.

실행을 한후에 $a++를 실행한다.

$a++를 실행을 하면 a는 2가 대입된다.

그리고 나서

조건 $a <= 10에서 참, 거짓을 다시 구분한다. 전에는 1이기 때문에 참이었으며 지금은 2이기 때문에 또 참이므로

echo문을 실행한다. 그후 다시 $a++를 실행하며 다시 조건의 참, 거짓을 판별한다. 이런식으로

계속 반복이 되며 a에 11이 대입이 되면 거짓으로 판별되어 echo문을 더이상 수행하지 않게 된다.

그렇다면 1부터 10까지 누적되는 값을 구해보자.

<?php
    echo "1부터 10까지 for문을 이용하여 누적된 값을 구하는 <br />";
    echo "=============================================== <br />";

    $sum = 0; // 누적되는 값을 여기에다가 저장시키기 위하여 선언

    for($a = 1; $a <=10; $a++){
        $sum += $a;
        echo " {$a}까지 누적합은 {$sum}입니다.^^ <br />";
    }
?>
php image

누적된 값을 저장할 무언가가 필요하기에 $sum을 선언하여 그곳에 누적된값을 저장시킨다.

그렇게 되면

for($a = 1; $a <=10; $a++)
{
$sum += $a;
echo " {$a}까지 누적합은 {$sum}입니다.^^ <br />";



a는 1 이고 1은 10보다 작기때문에 조건식에서 참으로 판별된다.

참으로 판별이 되었으므로 아래의 명령을 수행한다.

$sum은 0이었으나 += $a;를 수행하여 1이 더해져서 $sum 값이 1이 된다.

그후 echo문을 수행한다.

그후 증감식을 수행한다 .$a++ 하였으므로 $a는 2가 되었고

조건에서 10보다 작아서 참으로 판별이 되었으며

$sum += $a; 를 수행한다. 여기서 $sum 은 1이고 $a는 2이므로 1+2가 되므로 $sum 은 3이 된다.

그후다시 echo문 수행, 다시 증감식 수행 그럼 $a는 3이 되고 이런식으로 쭉 조건이 참을 판별하게 되면 반복하게 되어 11이

되면 수행을 멈추게 된다. 거짓으로 판별되었기 때문에...

이중 for문

2중 for문은 for문 안에 서 또 for문을 선언하는 것이다. 어렵게 생각할 필요가 전혀 없다. 그냥 말 그대로 for문에서 또 for문이 들어가는 것 뿐이다.

예를 들어

구구단 2,3단의 숫자 3까지만 만들어보면

<?php
    for($a = 2; $a <= 3 ; $a++){

        echo " 구구단 $a 단 <br />";

        for($b = 1; $b <= 3 ; $b ++){
            $mul = $a * $b;
            echo " $a * $b = $mul <br />";
        }
    }
?>
php image

for문을 선언했습니다? 2부터 시작한 이유는 2단부터이기 때문입니다.
3보다 작으므로 조건에 참으로 되어서 다음 실행문을 실행을 합니다.
그럼 구구단 2단 이 출력 되고 그 다음을 실행합니다.
그 다음이 for문 이네요 그러므로 for문을 실행합니다.
b =1; b < =3; b++
그리고 a 와 b를 곱한값을 저장하기 위한 변수 mul을 선언합니다.
그리고 마지막 실행문인 echo " $a * $b = $mul을 실행합니다.
그리고 나서
현재 a는 2 b는 1이므로
2 * 1 = 2($mul)
b를 증가시키고 2로 변환되어서 조건에 참을 만족한후
다시 echo문 실행 하므로
2 * 2 = 4
가 실행 됩니다.그후 다시 b는 증가되어서 3이 됩니다.3과 같으므로 다시 참을 만족하여
2 * 3 = 6 을 표현하게 됩니다.다시 증가하여 4가되었습니다.
4는 거짓으로 판별되어 for문을 빠져나옵니다.
그러면 처음에 있던for문으로 가게되고 실행문을 실행하여 왔으므로 첫 for문의 $a++을 실행하여 a는 3이 됩니다.
3이므로 저건에 참으로 구분되어
다시 아래 실행문을 실행합니다.
구구단 3단이라고 출력한후
그 아래의 for문도 실행을 하고
위와같은 과정으로 3단을 표현하게 되고
빠져나오면 a의 값이 4가 되고 거짓으로 판별되어 종료됩니다.

설명이 잘 전달됐으면 좋겠네요.;;

이런식으로 해서 구구단을 당신이 원하는 만큼 만들어낼수 있습니다.
19단 까지 19를 곱한것까지도 가능하며 당신이 워하는 수만큼 가능합니다.
그럼 정상적인 9단까지의 구구단을 출력해 보려면 어떻게 할까요?
처음 구구단을 몇개까지 설정해주는 첫 for문의 조건을 3이 아닌 9로 변경해주고
두번째 for문의 조건도 9로 변경해줍니다.
아래와 같이

<?php
    for($a = 2; $a <= 9 ; $a++){

      echo " 구구단 $a 단 <br />";

      for($b = 1; $b <= 9 ; $b ++){
        $mul = $a * $b;
        echo " $a * $b = $mul <br />";
      }
    }
?>

봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준