제어문-2)반복문

유영·2023년 3월 2일
0

PHP

목록 보기
16/57

반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여 수행하는 명령문입니다.

프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많으므로, 반복문은 가장 많이 사용되는 명령문 중 하나입니다.

PHP에서 사용되는 대표적인 반복문의 형태는 다음과 같습니다.

  1. while 문
  2. do / while 문
  3. for 문
  4. foreach 문

while 문

while 문은 특정 조건을 만족할 때까지 계속 주어진 명령문을 반복해서 실행하는 명령문입니다.

while (조건식) {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}

while 문은 우선 표현식이 참(true)인지를 판단하여 참이면 내부의 명령문을 실행합니다.
내부의 명령문을 전부 실행하고 나면,
다시 표현식으로 돌아와 또 한 번 표현식이 참인지를 판단하게 됩니다.

이렇게 표현식의 검사를 통해, 반복해서 실행되는 반복문을 루프(loop)라고 합니다.

$i = 0;
while ($i < 5) {
    echo ($i++)."<br>";
}

do / while 문

while 문은 루프에 진입하기 전에 먼저 표현식부터 검사합니다.
하지만 do / while 문은 먼저 루프를 한 번 실행한 후에 표현식을 검사합니다.
즉, do / while 문은 표현식의 결과와 상관없이 무조건 한 번은 루프를 실행합니다.

do {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
} while (조건식);

	$i = 0;
	$j = 0;
	
	while ($i > 5) {
		echo "변수 i의 값은 ".(++$i)."입니다.<br>";
	}

	do {	// do/while문은 조건식과 상관없이 반드시 한 번은 루프를 실행함.
		echo "변수 j의 값은 ".(++$j)."입니다.<br>";
	} while ($j > 5);
	
	//결과 :변수 j의 값은 1입니다.

for문

for 문은 while 문과는 달리 자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문입니다.
따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있습니다.

for (초기식; 조건식; 증감식) {
조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}

for 문을 구성하는 초기식, 표현식, 증감식은 각각 생략될 수 있습니다.
또한, 쉼표 연산자(,)를 사용하면 여러 개의 초기식이나 증감식을 동시에 사용할 수도 있습니다.
for 문을 사용하면 앞선 예제의 while 문을 더욱 더 간결하게 표현할 수 있습니다.

	for ($i = 0; $i < 5; $i++) {
		echo "{$i}<br>";
	}
//결과 : 0
        1
        2
        3
        4

for 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.


foreach문

foreach 문은 일반적인 for 문과는 전혀 다른 형태의 반복문입니다.
foreach 문은 배열의 모든 요소를 손쉽게 순회할 수 있도록 해줍니다.
이 반복문은 루프마다 배열의 각 요소를 지정된 변수에 대입합니다.
이렇게 대입받은 변수를 이용하면 루프 안에서 배열의 각 요소에 순차적으로 접근할 수 있습니다.
따라서 foreach 문은 정확히 배열의 길이(length)만큼 반복됩니다.

foreach (배열 as 값을저장할변수) {
실행하고자 하는 명령문;
}

$arr = array(2, 4, 6, 8);
	foreach ($arr as $value) {
		echo "변수 value의 현재값은 {$value}입니다.<br>";
	}
	unset($value);
    

 //변수 value의 현재값은 2입니다.
 //변수 value의 현재값은 4입니다.
 //변수 value의 현재값은 6입니다.
 //변수 value의 현재값은 8입니다.

위의 예제에서 변수 $value는 foreach 문 내에서만 사용하는 변수입니다.
따라서 foreach 문이 끝난 뒤에는 unset() 함수를 사용하여 해제해 주는 것이 좋습니다.

배열의 값뿐만 아니라 키값도 저장하여 활용하는 예제입니다.

	$arr = array(
		"둘" => 2,
		"넷" => 4,
		"여섯" => 6,
		"여덟" => 8,
	);
	foreach ($arr as $key => $value) {
		echo "배열 arr에서 키값 '{$key}'에 대한 값은 {$value}입니다.<br>";
	}
	unset($value);
//배열 arr에서 키값 '둘'에 대한 값은 2입니다.
//배열 arr에서 키값 '넷'에 대한 값은 4입니다.
//배열 arr에서 키값 '여섯'에 대한 값은 6입니다.
//배열 arr에서 키값 '여덟'에 대한 값은 8입니다.

foreach 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

0개의 댓글