기타 제어문

유영·2023년 3월 2일
0

PHP

목록 보기
17/57

루프의 제어

일반적으로 조건식의 검사를 통해 루프로 진입하면, 다음 조건식을 검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다.
사용자는 continue 문과 break 문을 통해, 이러한 일반적인 루프의 흐름을 직접 제어할 수 있습니다.

continue 문

continue 문은 루프 내에서 사용하여 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 합니다.
보통 반복문 내에서 특정 조건에 대한 처리를 제외하고자 할 때 자주 사용됩니다.

다른 언어와는 달리 PHP에서는 switch 문에도 continue를 사용할 수 있어, switch 문을 반복문처럼 사용할 수 있습니다.

	$exceptNum = 4;

	for ($i=0; $i<=20; $i++) {
		if ($i % $exceptNum == 0)
			continue;
		echo "{$i} ";
	}
    		
//1 2 3 5 6 7 9 10 11 13 14 15 17 18 19

break 문

break 문은 루프 내에서 사용합니다.
해당 반복문을 완전히 종료시키고, 반복문 다음에 위치한 명령문으로 이동시킵니다.

즉, 루프 내에서 조건식의 판단 결과에 상관없이, 반복문을 완전히 빠져나가고 싶을 때 사용합니다.

$sum = 0;
	$startNum = 1;
	$endNum = 10;

	$i = $startNum;
	while (true) {	// 일부러 만든 무한 루프임.
		$sum += $i;
		if ($i == $endNum)
			break;
		$i++;
	}
	
	echo "{$startNum}에서부터 {$endNum}까지 더한 값은 {$sum}입니다.";
    //1에서부터 10까지 더한 값은 55입니다.

goto 문

goto 문은 프로그램의 흐름을 지정된 레이블(label)로 무조건 변경하는 명령문입니다.
goto 문은 다른 제어문과는 다르게 아무 조건 없이 제어를 옮겨줍니다.
따라서 가장 손쉽게 사용할 수 있지만, 반면에 프로그램의 흐름을 매우 복잡하게 만들기도 합니다.
이러한 단점 때문에 현재는 거의 사용하지 않습니다.


제어문의 대체 문법

PHP는 제어문을 위해 사용할 수 있는 또 하나의 대체 문법을 제공하고 있습니다.
이 대체 문법은 조건문에서는 if 문과 switch 문/ 반복문에서는 while 문, for 문과 foreach 문에 사용할 수 있습니다.
대체 문법의 사용 방법은 우선 제어문의 여는 괄호({)를 콜론(:)으로 대체합니다.

그리고 닫는 괄호( } )를 각각 endif;, endswitch;, endwhile;, endfor;, endforeach;로 대체하면 됩니다.

<?php $var = 5; ?>

<?php if ($var > 6): ?>
변수의 값은 6보다 큽니다.	<!-- 이 부분은 HTML 구문임 -->
<?php elseif ($var == 6): ?>
변수의 값은 6입니다.		<!-- 이 부분은 HTML 구문임 -->
<?php elseif ($var < 6): ?>
변수의 값은 6보다 작습니다.	<!-- 이 부분은 HTML 구문임 -->
<?php endif; ?>

<!--변수의 값은 6보다 작습니다.-->

대체 문법으로 쓰인 elseif 문 안에 있는 HTML 구문은
변수 $var의 값에 따라 단 하나만이 출력될 것입니다.

0개의 댓글