본문으로 바로가기

루프를 벗어나고 싶을 때 break문

category 웹코딩/PHP 2016. 10. 4. 15:46


  break문을 이용하면 반복 처리 도중에 루프를 벗어날 수 있습니다. 반복 처리하는 도중에 break문을 실행하여 루프를 빠져나오는 것입니다. break문은 반복 처리인 while문 외에 조건 분기의 switch문에서도 이용됩니다. 간단하게 break문의 사용법을 보겠습니다.


● breake문의 간단한 예

<?php
$fruit = array('apple', 'orange',  'grape');
   
     for ($i = 0, $i < 3; $i++) {
        echo $fruit[$i] . '
'; if ($i == 1) { echo '루프를 벗어납니다.'; break; } } ?>


  위의 에제의 경우 for문에서 3회 반복 처리가 끝까지 실행되기 전에 break문에 의해 처리가 종료되므로 'grape'는 표시되지 않습니다. 중첩된 반복 처리문에서 break문을 사용해 상위 계층까지 빠져나가려면 빠져나가고 싶은 계층의 수를 지정해야 합니다.



● breake문으로 계층 빠져나가기

<?php
$i = 1;

while ($i < 10) {
    echo 'i=' . $i . '';
    $j = 1;
    while ($j < 5) {
        echo  'j=' . $j . '';
        echo 'i * j=' . $i * $j .'';
        if ($i * $j > 15) {
            break 2;
        }

        $j += 1;
    }
    $i += 1;
    echo '<br>';
}
?>

  이렇게 break문을 사용하려면 반복 처리 도중에 강제로 빠져나갈 수도 있고 몇 계층이 빠져나갈 것인지 지정할 수도 있습니다.


● 반복 처리 도중에 루프를 벗어나고 싶을 때

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>반복 처리 도중에 루프를 벗어나고 싶을 때</title>
</head>
<body>
<div>
<?php
// 변수에 수치를 대입합니다.
$count = 1;
$sum   = 0;

// 반복 처리를 실행합니다.
while ($count <= 100) {
  $sum += $count;
  if ($sum > 1000) {
    echo '1000을 넘어섰으므로 count는 ' . $count . '에서 종료합니다<br>';
    break;
  }
  $count += 1;
}
// 합계를 표시합니다.
echo 'sum은 ' . $sum;
?>
</div>
</body>
</html>

  '$sum += $count;'는 '$sum = $sum + $count;'와 같은 의미입니다. '+='와 같은 연산자는 '복합 연산자'로 부릅니다. 이 외에도 감산해서 대입하는 -=나 문자열을 결합해서 대입하는 .=등이 있습니다.