루프의 제어
일반적으로 조건식의 검사를 통해 루프로 진입하면, 다음 조건식을 검사하기 전까지 루프 안에 있는 모든 명령문을 실행한다. 하지만, 사용자는 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 === 8) break;
}
?>
|
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 |
'PHP' 카테고리의 다른 글
22. PHP 다차원배열 (0) | 2021.03.06 |
---|---|
21. PHP 배열 (0) | 2021.03.06 |
19. PHP FOR반복문 (0) | 2021.03.04 |
18. PHP WHILE반복문 (0) | 2021.03.04 |
17. PHP SWITCH조건문 (0) | 2021.03.04 |