웹마스터 팁

C 라도 조금 공부하신 분은 대부분 아시겠지만 제가 처음 PHP 공부했을때 구구단 출력하는법 100% 이해 하기가 좀 힘들었기에 허접하나마 써봅니다;
다 아시는분은 읽으시면 별 도움은 없을테니 읽으 실 필요까진 없습니다; -,-;
변수나 echo 문 정도의 PHP의 기초만 조금이라도 아시면 다 이해하실 수 있을겁니다;

for 문이 머냐구요? for 문은 일단 반복문이라고만 생각하시면 됩니다.
근대 왜 구구단에 반복문을 사용하는 이유는,
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
    ....
    ....
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
    ....
    ....

왠만한 사람들은 다 눈치 채셨을겁니다^^a;
앞에 숫자만 다를뿐 곱하는 숫자는 같은것을 볼 수 있습니다.
2 * 1 할때 3 *1, 2 * 2 할때 3 * 2 인것이죠.

구구단을 출력하려면 2단 부터 9단까지 똑같이 9번을 곱해 주죠.
그러므로 반복문을 사용 하는겁니다.

그런데 php 에서 반복문이 for 문만 있는것은 아닙니다.
굳이 구구단에서 for 문을 써야 하는지 물으시는 분도 계시겠죠.
그것을 다 설명하기엔 이 공간이 너무 부족하기에 생략하겠습니다 (-_-z;)

그럼 for 문에 대해서 알아보겠습니다.
for 문의 사용법은 다음과 같습니다;

for (루프 카운터 초기화; 루프 카운터 확인; 루프 카운터 증가 or 감소)
{
  반복될 코드
}

예를 들어 다음과 같은 코드가 있다고 합시다.
for ($i=2; $i <= 9; $i++)
{
  echo $i;
}
결과는 직접 해 보시면 알 수 있습니다.
구조를 살펴 보겠습니다.

우선, $i 라는 변수에 2 라는 숫자를 대입합니다.
그 다음 $i <= 9 라는 조건에 참인지 거짓인지를 판단합니다.
9보다 작거나 같으면 참이고 9보다 크다면 거짓이죠.

거짓이라면 루프를 빠져 나오고 결과는 하나도 출력되지 않습니다.

허나 참이라면 아래의 코드를 실행합니다. (echo $i;)
즉 제일 처음에 나올 숫자는 '2' 가 되는거죠.
'2' 가 출력된 후엔 $i++ 를 실행하면서 $i 변수엔 '3' 이 대입됩니다.

그 후엔, $i <= 9; 로 다시 돌아와서 9보다 작거나 같으면 또 값을 한번 더 해 준 후, 만약 크다면 루프를 빠져 나오게 되죠.

실행 순서를 번호로 매기자면 다음과 같습니다.
for (①루프 카운터 초기화; ②루프 카운터 확인; ④루프 카운터 증가 or 감소)
{
  ③반복될 코드
}

하지만 한번 루프를 돌고 난 후엔
for (루프 카운터 초기화; ①루프 카운터 확인; ③루프 카운터 증가 or 감소)
{
  ②반복될 코드
}

이런식으로 다시 루프가 도는거죠.
그럼 이제 구구단을 만들어 보겠습니다.
우선 두개의 숫자를 곱해서 그 결과를 나타낸 것이므로,
number1 * number2 = result;
number1 은 1부터 9까지 나와야 하므로,

for ($i = 2; $i <= 9; $i++)
{
  echo $i . "<BR>";
}

이렇게 1부터 9까지 출력이 되었습니다.
자 생각을 해 보시면 number2 또한 1부터 9까지 나오는것이겠죠^^
그럼 우선은 2단만 출력해보기로 하겠습니다.

for ($i = 1; $i <= 9; $i++)
{
  echo "2 * $i = " . 2 * $i . "<BR>";
}

지금 출력된것은 2단만 쭉 됩니다.
잘 생각해 봅시다.
만약 반복될 코드도 for 문이라면 어떻게 될까요?
for 문 안에 또 for 문이 있다면 그 안에 들었던 for 문의 루프가 다 끝나면 다시 제일 상위권의 for 문이 돕니다.
이걸 활용하면 다음과 같습니다.

for ($i = 2; $i <= 9; $i++)
{
  for ( $j = 1; $j <= 9; $j++ )
{
    echo $i . " * " . $j . " = " . $i * $j . "<BR>";
  }
}

이렇게 하면 완성입니다. 최종적으로 위 코드를 실제로 따라가 보며 이 강좌를 마치겠습니다.

$i 라는 변수에 2를 대입합니다
$i 가 9보다 작거나 같은지 검사하였다. 2는 참이므로 아래 코드를 실행합니다
$j 라는 변수에 2를 대입합니다.
$j 가 9보다 작거나 같은지 검사하였다. 1은 참이므로 아래 코드를 실행합니다

- 현재 i 값은 2, j 값은 1 라는 숫자입니다. 그러므로,
echo $i . " * " . $j . " = " . $i * $j . "<BR>";
이것의 결과는 2 * 1 = 2 가 됩니다

그 후, $j++ 이므로 $j 변수에 하나를 더합니다.
그럼 $j 는 2 이 되죠.
echo $i . " * " . $j . " = " . $i * $j . "<BR>";
이것의 결과는 2 * 2 = 4 가 됩니다

또 $j 변수에 하나를 더해 3이 되면 2 * 3 = 6 이 되죠.

이렇게 계속 반복이 되어 $j 변수가 9보다 큰 10이 되는 순간 for 문 안의 for 문의 루프는 빠져 옵니다.
그 후 $i 변수는 for 문 안의 for 문 아래에 아무런 코드도 없으므로 $i++ 를 실행하여 $i 변수엔 3이라는 값이 됩니다.
그렇게 계속 돌고 돌아 3 * 1 = 3, 3 * 2 = 6
..........................
이렇게 해서 구구단이 출력되는겁니다.

게시판에 강좌를 한다는게 첨일 뿐만 아니라 PHP 초보라 분명히 어딘가 부족한점이 많이 있을겁니다;
아래 코멘트로 지적해 주세요; 이렇게 길게 될줄은; -_-;;;;;