PHP

20. PHP 기타 제어문

drizzle0925 2021. 3. 4. 23:08
728x90

루프의 제어

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


continue 문

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

 

다른 언어와 달리 PHP에서는 switch 문에서도 continue를 사용할 수 있어 switch도 반복문 처럼 사용이 가능하다.

 

다음은 1부터 10까지의 정수중에 2의 배수를 제외하고 출력하는 예제이다.

 

1
2
3
4
5
6
7
8
<?php
$even = 2;
for ($i=1$i<=10$i++) {
    if ($i % $even == 0)
        continue;
    echo "{$i} <br>";
}
?>
cs


break 문

break 문은 루프 내에서 사용한다.

해당 반복문을 완전히 종료시키고, 반복문 다음에 위치한 명령문으로 이동시킨다.

즉, 루프 내에서 조건식의 판단 결과에 상관없이, 반복문을 종료하고 싶을 때 사용한다.

 

다음은 1부터 10까지 차례대로 출력하는데 변수값이 8이되면 반복문을 종료하는 예제이다.

 

1
2
3
4
5
6
7
<?php
$number = 1;
while(true){ // 일부러 무한루프를 만듬
    echo $number."<br>";
    if(++$number === 8break;
}
?>
cs


goto 문

goto 문은 프로그램의 흐름을 지정된 레이블(label)로 무조건 변경하는 명령문이다.

 

goto 문은 다른 제어문과는 다르게 아무 조건 없이 제어를 이동시켜 준다.

따라서 가장 손쉽게 사용할 수 있지만, 반면에 프로그램의 흐름을 매우 복잡하게 만들기도 한다.

이러한 단점 때문에 거의 사용하지 않는다.

 

 

1
2
3
4
5
6
7
<?php
goto move;
echo "오늘은 열심히 일해야지!";
 
move :
echo "일은 무슨... 집에 가고 싶다...";
?>
cs


제어문의 대체 문법

PHP는 제어문을 위해 사용할 수 있는 또 하나의 대체 문법을 제공하고 있다.

이 대체 문법은 조건문에서는 if 문과 switch 문, 반복문에서는 while 문, for 문과 foreach 문에서 사용할 수 있다.

 

대체 문법의 사용 방법은 우선 제어문의 여는 괄호({)를 콜론으로 대체한다.

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

 

1
2
3
4
5
6
7
8
<?php $var = 4?>
<?php if ($var > 5): ?>
변수의 값은 5보다 큽니다.   <!-- 이 부분은 HTML -->
<?php elseif ($var == 5): ?>
변수의 값은 5입니다.        <!-- 이 부분은 HTML -->
<?php elseif ($var < 5): ?>
변수의 값은 5보다 작습니다. <!-- 이 부분은 HTML -->
<?php endif; ?>
cs

 

728x90