Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP break 문 완벽 가이드 – 반복문과 switch 제어 방법


개요

break 문은 PHP의 반복문 제어 키워드 중 하나입니다. 프로그램 실행 흐름이 while, do-while, for, foreach 반복문 또는 switch 구조 안에서 break를 만나면, 해당 반복문(또는 switch 구조)의 나머지 코드 실행을 즉시 중단하고 그 바깥에 있는 다음 문장으로 넘어갑니다.

기본 문법

while (expr)
{
   ..
   ..
   if (expr1)
   break;
   ..
   ..
}

다음 예제에서는 while 루프가 사용자 입력을 계속해서 읽다가 문자열 "END"가 입력되면 반복을 종료합니다.

예제

<?php
while (TRUE){
   $var=readline("enter something (END to stop loop)");
   if ($var=="END")
      break;
   echo "You entered $var\n";
}
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

enter something (END to stop loop)Hello
You entered Hello
enter something (END to stop loop)PHP
You entered PHP
enter something (END to stop loop)END

중첩 반복문에서의 break

break 키워드는 선택적으로 숫자 인자를 받을 수 있으며, 이를 통해 몇 단계의 중첩된 구조를 빠져나올지 지정할 수 있습니다. 기본값은 1입니다.

중첩된 반복문에서 break는 현재 실행 중인(내부) 반복문만 종료시킵니다. 다음 예제에서는 내부 루프에 break 문이 사용되었습니다.

예제

<?php
for ($i = 1;$i<=5;$i++) {
   echo "Start Of outer loop\n";
   for ($j=1;$j<=5;$j++) {
      if ($j >=3) break ;
         echo "I : $i J : $j"."\n";
   }
   echo "End of inner loop\n";
}
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Start Of outer loop
I : 1 J : 1
I : 1 J : 2
End of inner loop
Start Of outer loop
I : 2 J : 1
I : 2 J : 2
End of inner loop
Start Of outer loop
I : 3 J : 1
I : 3 J : 2
End of inner loop
Start Of outer loop
I : 4 J : 1
I : 4 J : 2
End of inner loop
Start Of outer loop
I : 5 J : 1
I : 5 J : 2
End of inner loop

숫자 인자를 활용한 break (break 2)

break는 선택적으로 숫자 인자를 받으며, 이 숫자는 몇 개의 중첩된 감싸고 있는 구조를 빠져나올지 지정합니다. 다음 예제에서 내부 루프의 break 2는 내부 루프뿐만 아니라 외부 루프까지 한 번에 탈출합니다.

예제

<?php
for ($i = 1;$i<=5;$i++) {
   echo "Start Of outer loop\n";
   for ($j=1;$j<=5;$j++) {
      if ($j >3) break 2 ;
      echo "I : $i J : $j"."\n";
   }
   echo "End of inner loop\n";
}
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

I : 1 J : 1
I : 1 J : 2
I : 1 J : 3

switch 문에서의 break

switch 구조에서 break는 조건에 맞는 값을 찾은 후, 이후의 case로 실행이 계속 이어지는 현상(fall-through)을 방지하는 역할을 합니다.

예제

<?php
$x=25;
$var=(int)readline("enter a number 1 for square root 2 for square: ");
switch($var){
   case 1:echo sqrt($x). "\n";
      break;
   case 2:echo pow($x, $var) . "\n";
}
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

enter a number 1 for square root 2 for square: 2
625
enter a number 1 for square root 2 for square: 1
5