R's Hacking Daily Log

php 반복문 다루기 본문

PHP

php 반복문 다루기

hanhxx 2023. 7. 4. 23:05

Step 1 :: for

반복문은 일정 기준에 따라 특정 코드를 반복 수행하는 문장을 말한다.

처음 살펴볼 for문은 초기식, 조건식, 증감식을 포함하고 있는 반복문이다. 

 

<?php
for (초기식; 조건식; 증감식) {
    실행 코드
}

초기식, 조건식, 증감식은 세미콜론으로 구분하며 중괄호 안에 반복 수행할 코드를 작성하면 된다. 

 

<?php
for($i = 0; $i < 10; $i++) {
    echo $i."<br/>";
}

 

1) 초기식으로 변수 i에 0을 할당

2) 조건식으로 i 값이 10보다 작은 지 비교연산

3) 조건이 true라면 echo 함수를 실행하고 

4) i 값을 1 증가시켜라!

 

조건식에서 i 값이 10보다 작은 지 확인하기 때문에 i가 10이 되는 순간, 반복을 멈추게 된다.

따라서 총 10번 echo 함수를 반복 실행하게 되는 것!

 

결과를 확인해 보면 0부터 9까지의 숫자가 출력된 걸 볼 수 있다. 

 

 


Step 2 :: foreach

foreach문은 배열 같은 데이터 유형 변수가 갖는 모든 요소에 대해 for문을 실행하는 반복문이다. 

foreach에서 each가 배열의 각 요소를 뜻한다고 생각하면 이해하기 쉽다.

 

<?php
$fruits = ["apple" => "사과", "banana" => "바나나", "strawberry" => "딸기"];

fruits 배열에 key-value 형태의 요소 3개를 넣어두었다. 

만약 배열의 요소를 하나씩 출력하고 싶다면 이때! foreach문을 활용할 수 있다. 

 

배열은 인덱스 or 키를 활용할 수 있기 때문에 출력하는 방식에서도 차이가 있다. 

 

첫 번째 foreach문은 fruits 배열 안에 있는 각 요소를 fruit라는 이름으로 가져와서 출력하는 형태이고

두 번째 foreach문은 fruits 배열의 키는 k, 값을 v라는 이름으로 출력하는 형태이다. 

 

 


Step 3 :: while

while문은 조건부 반복문으로 조건이 True인 동안 실행 내용을 반복한다. 

 

while(condition) {
	실행 내용
}

while문은 조건식이 true일 때 중괄호 안에 있는 내용을 수행한다.

그렇다 보니 while(1) or while(true)로 작성해서 무한 루프처럼 활용할 수 있다.

 

 

i에 1을 넣고 10보다 작을 동안 while문이 실행되도록 하면 결과에서 볼 수 있듯이

1부터 9까지 숫자가 출력된다!

 

i 값이 10이 되면 while문의 조건이 false가 되기 때문에

echo 함수가 실행되지 않고 while문이 종료되는 것이다.

 

 


Step 4 :: do-while

do-while문은 while문과 유사하지만 do가 추가된 만큼 차이점도 존재한다. 

 

do {
	실행 내용
} while(condition)

while문과 달리 do-while문은 while문 앞에 do가 위치한다. 

do-while문은 while문 조건에 상관없이 무조건 처음 한 번은 중괄호 안에 작성한 코드를 실행한다. 

 

 

i가 0인 상태에서 do-while문에 들어가면 while문의 조건이 "1보다 크다"이기 때문에

아무런 값도 출력되지 않아야 하는 데 do-while문은 무조건 최초 한 번 실행되기 때문에 0이 출력된 결과를 볼 수 있다. 

 

 


Step 5 :: 기타 제어문 

첫 번째로 살펴볼 제어문과 관련된 내용은 break다.

break 예약어는 제어문 내에서 빠져나올 때 사용할 수 있다.

 

예시를 살펴보면 for문으로 0부터 9까지 출력되는 반복문 안에 if문이 하나 있다.

if문 내용은 i가 6일 때 실행되는데 실행 내용이 break(for문 빠져나오기)이다. 

 

오른쪽 사진을 보면 0부터 쭉 출력이 되다가 6을 출력하고 if문에 들어가 break가 걸린다. 

그렇다 보니 6이 출력되고 나서 for문을 빠져나오기 때문에 7부터는 출력되지 않은 것이다. 

 

 

두 번째로 살펴볼 내용은 continue이다. 

continue는 break처럼 제어문에서 빠져나온다기보다 특정 조건이 만족될 때 실행을 건너뛰는 느낌이다.

 

위의 코드를 보면 0부터 9까지 i를 출력하는 데 만약(if) i가 6이면 값을 출력하지 않고 건너뛴다(continue).

그래서 오른쪽 결과에서 6은 출력되지 않고 나머지 숫자만 출력된 걸 볼 수 있다.

 

 

마지막으로 살펴볼 내용은 goto이다.

goto는 label을 사용하여 어느 지점으로 이동할 수 있는 기능을 갖고 있다.

 

1) goto로 jump라는 label을 만들고 

2) jump label이 사용된 위치로 이동해

3) ~hello world~ 문구를 건너뛰고 ByeBye 문구를 출력하게 된다. 

 

 

'PHP' 카테고리의 다른 글

php 함수 (2)  (0) 2023.07.05
php 함수 (1)  (0) 2023.07.05
php 조건문 다루기  (0) 2023.07.03
php 연산자 다루기 (2)  (0) 2023.07.02
php 연산자 다루기 (1)  (1) 2023.07.01
Comments