PHP 프로그래밍 입문 127p에 나오는 예제를 보는데 순간적으로 이게 무슨 뜻인지 잘 이해가 되지 않더라
특별히 어려운 것 없는 굉장히 쉬운 예제였는데 보는 순간 응(?) 싶었는데 몇분 정도 쳐다보니 그제서야 이해가 되는..
문제의 예제 전체 코드
<?
for($i=0; $i<10; $i++)
$a[$i]=$i+1;
for($i=9; $i<0; $i--)
$b[9-$i]=$i+1;
for($i=0; $i<10; $i++)
$c[$i]=$a[$i]*$b[$i];
for($i=0; $i<10; $i++)
echo "$a[$i] x $b[$i] = $c[$i]<br>";
?>
순간적으로 내가 헷갈렸던 부분은 이 부분이다
for($i=0; $i<10; $i++)
$a[$i]=$i+1;
조건문에 분명히 $i++가 있어서 변수 i는 반복문을 돌 때마다 자동으로 +1이 되는데
실행문에서 왜 또 변수 i에 +1을 해주는 걸까?
설명문에서도 이 부분을 설명해주지 않는다 ㅠㅠ
1. 해답 및 코드 풀이
for($i=0; $i<10; $i++) // $i의 초기값은 0, $i가 10보다 작을 때까지(=9까지) $a[$i]=$i+1;를 반복하면서 $i에 1씩 더해준다
$a[$i]=$i+1;
즉, 변수i가 9가 될 때까지 반복하는데 반복문을 한번 돌아서 나올 때마다 변수 i값에 +1씩 더해준다는 뜻이다
여기서 순간적으로 혼란이 생길수 있는 것은 조건문 내에 반복문을 돌 때마다 +1씩 해주라는 ( $i++ )가 있는데
for문 내부에서 또 1을 더한다는 것이다 ( $a[$i]=$i+1; )
여기에서 염두에 두어야 할 것은
$a[숫자] 는 배열의 인덱스 번호를 지칭하는 것이다
배열의 익덱스 번호는 0번부터 시작한다
[사과, 나비, 바람개비, 통닭]
과 같은 배열이 있다면 우리의 상식 선에서 배열 값에 번호를 붙인다면 사과=1번, 나비=2번, 바람개비=3번, 통닭=4번이 되겠지만
PHP 배열에서는 그렇지가 않다는 것이다
다시 말하지만, 배열의 인덱스 값은 0부터 시작한다
[사과, 나비, 바람개비, 통닭]
0번 1번 2번 3번
즉, 사과=0번, 나비=1번, 바람개비=2번, 통닭=3번이라는 것이다
이 점을 염두에 두고 코드를 다시 살펴보자
for($i=0; $i<10; $i++)
$a[$i]=$i+1;
$i에 0이 들어갔을 때
$a[0]=0+1;이 되는 것이다
이게 무슨 말이냐면
a라는 배열의 0번째 인덱스에 1이라는 값을 저장하겠다는 얘기다
$i는 9까지 +1씩 증가할테니
$i가 0~9가 되는 동안 다음과 같은 배열이 생기는 것이다
[1,2,3,4,5,6,7,8,9,10]
위 배열을 인덱스 번호로 봤을 때는 다음과 같다
1= 0번
2=1번
3=2번
4=3번
5=4번
6=5번
7=6번
8=7번
9=8번
10=9번
그렇기 때문에 for문 조건식 내부의 $i++는 인덱스 번호의 증가를 의미하는 것이고
실행문 우변에서 $i+1은 실제 배열에 들어가는 값을 의미하는 것이다
인덱스 번호 +1이 배열 내의 값이기 때문이다
'워드프레스' 카테고리의 다른 글
까페24 이미 다른 계정에 연결된 도메인 해결 방법 (0) | 2022.09.14 |
---|---|
까페24 이미 다른 계정에 연결된 도메인 해결방법 (0) | 2022.09.14 |
워드프레스 rss 에러 및 rss 주소 확인 (0) | 2022.07.20 |
코스모스팜 케이보드 session_start(): Cannot start session 오류 해결방법 (0) | 2022.07.14 |
워드프레스 php로 mysql 데이터베이스 테이블 생성하기 (0) | 2022.04.12 |