PHP에서 break와 continue 사용법 (반복문 제어)

안녕하세요! 오늘은 PHP에서 반복문을 자유자재로 다루는 마법 지팡이, breakcontinue에 대해 함께 알아보는 시간을 가져보려고 해요. 반복문 속에서 흐름을 딱 원하는 대로 제어할 수 있게 도와주는 고마운 친구들이죠. 혹시 반복문 돌리다가 원하는 조건에 맞으면 바로 빠져나가고 싶었던 적 있으셨나요? 아니면 특정 조건일 때는 그냥 넘어가고 싶었던 경험은요? 바로 그럴 때 breakcontinue가 빛을 발한답니다. PHP breakcontinue 사용법을 제대로 익히면 코딩 실력이 쑥쑥 향상될 거예요. 자, 그럼 지금부터 breakcontinue기본적인 사용법부터 중첩 반복문에서의 활용, 그리고 실제 예시까지 차근차근 살펴보도록 할까요?

 

 

break의 기본적인 사용법

break! 마치 긴 터널 속에서 한 줄기 빛을 발견한 것 같은 느낌이 드는 키워드죠? ^^ 프로그래밍, 특히 반복문 속에서 break는 정말 중요한 역할을 담당해요. 왜냐하면 반복문의 흐름을 제어하는 강력한 도구이기 때문이죠! 마치 롤러코스터를 타다가 “스톱!” 하고 외치는 것과 같은 효과랄까요? 😄

break는 단어 그대로 반복문을 ‘깨뜨리는’ 역할을 합니다. for, while, do-while, foreach, switch 등 다양한 반복문이나 선택문에서 사용될 수 있어요. break 문을 만나면, PHP 인터프리터는 즉시 현재 실행 중인 반복문이나 switch 문을 탈출하고, 그 다음 문장으로 제어를 넘겨줍니다. 이해하기 쉽도록 몇 가지 예시를 살펴볼까요?

1. for 문에서의 break

for 문은 정해진 횟수만큼 코드 블록을 반복 실행하는 데 사용됩니다. 만약 반복 횟수가 100번인데, 50번째에 특정 조건을 만족하면 더 이상 반복할 필요가 없다고 가정해 봅시다. 이럴 때 break가 빛을 발합니다! 🤩

<?php

for ($i = 0; $i < 100; $i++) {
    if ($i == 50) {
        echo "50에 도달했습니다! 반복문을 종료합니다! 😊";
        break; // $i가 50일 때 반복문을 탈출합니다.
    }
    echo $i . " ";
}

echo "<br>for 문 이후의 코드 실행";

?>

위 코드를 실행하면 0부터 49까지 출력된 후 “50에 도달했습니다! 반복문을 종료합니다! 😊”라는 메시지와 함께 for 문을 벗어나 “for 문 이후의 코드 실행”이 출력될 거예요. break 덕분에 불필요한 51부터 99까지의 반복을 피할 수 있었죠. 효율적이지 않나요? 😏

2. while 문에서의 break

while 문은 조건이 참인 동안 코드 블록을 반복 실행합니다. 조건이 언제 거짓이 될지 모르는 상황에서 특정 조건을 만족하면 반복을 중단해야 할 때, break를 사용하면 돼요!

<?php

$i = 0;
while ($i < 100) {
    $i++;
    if ($i % 7 == 0 && $i > 30) {  // $i가 7의 배수이고 30보다 클 때
        echo $i . "는 7의 배수이고 30보다 큽니다. 반복문을 종료합니다! 😉<br>";
        break;
    }
    echo $i . " ";
}

echo "while 문 이후의 코드 실행";

?>

이 코드에서는 $i가 7의 배수이고 30보다 커지는 순간, break 문에 의해 while 문을 탈출하게 됩니다. 조건을 명확하게 설정하고 break를 활용하면 원하는 시점에 반복문을 종료할 수 있어요. 👍

3. 중첩 반복문에서의 break

중첩 반복문이란 반복문 안에 또 다른 반복문이 있는 구조를 말합니다. 이런 경우 break는 바로 바깥쪽 반복문까지 한 번에 탈출시키는 것이 아니라, 현재 실행 중인 가장 안쪽의 반복문만 탈출시킵니다. 모든 바깥쪽 반복문을 탈출하려면 break 2;, break 3;처럼 탈출할 반복문의 깊이를 지정해 주어야 합니다. 마치 계단을 한 칸씩 내려가는 것과 여러 칸을 한 번에 내려가는 것의 차이라고 생각하면 돼요!

<?php

for ($i = 0; $i < 3; $i++) {
    for ($j = 0; $j < 3; $j++) {
        if ($i == 1 && $j == 1) {
            echo "i: " . $i . ", j: " . $j . "에서 break 2를 실행합니다! 😮<br>";
            break 2; // 바깥쪽 for 문까지 탈출!
        }
        echo "i: " . $i . ", j: " . $j . "<br>";
    }
}

echo "중첩 for 문 이후의 코드 실행";

?>

이 코드에서는 $i가 1이고 $j가 1일 때 break 2;를 만나 바깥쪽 for 문까지 한 번에 탈출합니다. break 뒤에 숫자를 지정하여 탈출할 반복문의 깊이를 조절할 수 있다는 점, 꼭 기억해 두세요! 😉

break는 반복문의 흐름을 제어하는 데 매우 유용한 도구예요. 조건에 따라 반복문을 효율적으로 종료할 수 있게 해주죠. 다음에는 continue에 대해 알아볼 텐데, break와 비슷하면서도 다른 매력을 가지고 있으니 기대해 주세요! 😊

 

continue의 기본적인 사용법

break가 반복문을 완전히 탈출하는 녀석이라면, continue는 한 사이클만 슝~하고 건너뛰는 재주꾼이에요! 마치 놀이터에서 미끄럼틀 타다가 한 번쯤은 줄 서지 않고 바로 다시 올라가서 타고 싶은 그런 느낌이랄까요? ^^ continue는 현재 진행 중인 반복문의 이터레이션(Iteration)을 중단하고, 다음 이터레이션으로 넘어가게 해줍니다.

continue를 사용한 짝수 출력

자, 예를 들어볼까요? 1부터 10까지 숫자 중 짝수만 출력하고 싶다고 해봅시다. 이때 continue를 사용하면 얼마나 간편해지는지 몰라요!

<?php
for ($i = 1; $i <= 10; $i++) {
  if ($i % 2 != 0) { // 홀수이면
    continue; // 다음 반복으로 넘어갑니다!
  }
  echo $i . " "; // 짝수만 출력됩니다.
}
// 출력 결과: 2 4 6 8 10
?>

위 코드를 보면, $i가 홀수일 때 continue 문이 실행되는 것을 알 수 있어요. 그럼 홀수는 출력되지 않고 다음 숫자로 넘어가게 되죠! 신기하지 않나요?! 짝수만 깔끔하게 출력되는 마법! 이게 바로 continue의 매력입니다.

다양한 반복문에서의 continue 사용

continuefor 루프뿐만 아니라 while, do-while, foreach 루프에서도 자유자재로 사용할 수 있어요. 어떤 반복문이든 상관없이 현재 이터레이션을 멈추고 다음 이터레이션으로 넘어가는 역할을 충실히 수행한답니다. 마치 훈련된 강아지처럼 말이죠! 🐶

foreach 루프에서의 continue 사용 예시

foreach 루프에서 continue를 사용하는 예시도 살펴볼까요? 과일 바구니에서 사과만 빼고 다른 과일 이름을 출력한다고 생각해 보세요.

<?php
$fruits = array("apple", "banana", "orange", "grape", "apple");

foreach ($fruits as $fruit) {
  if ($fruit == "apple") {
    continue; // 사과는 건너뛰고!
  }
  echo $fruit . " ";
}
// 출력 결과: banana orange grape 
?>

보이시나요? 사과만 쏙~ 빼고 다른 과일들만 출력되었죠? continue 덕분에 원하는 조건에 맞는 이터레이션만 건너뛸 수 있으니 얼마나 편리한지 몰라요! 마치 쇼핑할 때 마음에 안 드는 옷은 쓱~하고 넘기는 것처럼 말이죠!

continue 사용 시 주의사항: 무한 루프

continue를 사용할 때 한 가지 주의할 점이 있어요! 바로 무한 루프에 빠지지 않도록 조심해야 한다는 것입니다. continue를 사용하면 특정 조건에서 반복문의 다음 단계로 넘어가기 때문에, 조건을 잘못 설정하면 의도치 않게 무한 루프에 갇힐 수도 있어요. 마치 뫼비우스의 띠처럼 끝없이 반복되는 거죠! 😱

무한 루프 예시

예를 들어, 아래 코드를 한번 볼까요?

<?php
$i = 0;
while ($i < 10) {
  if ($i % 2 == 0) { // 짝수일 때 continue
    continue;
  }
  $i++; // 홀수일 때만 $i 증가
  echo $i . " ";
}
?>

이 코드에서는 $i가 짝수일 때 continue를 실행해서 $i++ 부분을 건너뛰게 됩니다. 그런데 $i 값이 0에서 시작해서 짝수일 때만 continue가 실행되니, $i 값이 증가하지 않고 계속 0으로 남아있게 되죠. 결국 $i < 10 조건을 영원히 만족하게 되어 무한 루프에 빠지게 되는 겁니다! 으악! 무서워라! 👻

무한 루프 방지

그러니 continue를 사용할 땐 반복문의 조건이 제대로 설정되어 있는지, 무한 루프에 빠질 가능성은 없는지 꼼꼼하게 확인해야 해요! 안전벨트를 매는 것처럼 중요한 부분이랍니다! 🚨

continue의 활용

continue는 반복문 안에서 조건에 따라 특정 이터레이션을 건너뛰고 싶을 때 아주 유용한 도구에요. 마치 요리할 때 특정 재료를 빼고 만드는 것처럼 말이죠! 하지만 무한 루프에 빠지지 않도록 주의해야 한다는 점, 꼭 기억해 주세요! 😉

 

중첩 반복문에서 break와 continue

자, 이제 드디어 중첩 반복문에서 breakcontinue를 어떻게 사용하는지 알아볼 시간이에요! 중첩 반복문이란 반복문 안에 또 다른 반복문이 있는 구조를 말하는데요, 겹겹이 쌓인 반복문을 제어하려면 breakcontinue가 정말 큰 도움이 된답니다! 마치 미로 속에서 탈출구를 찾거나, 지름길을 발견하는 것과 같은 느낌이랄까요? ^^

break와 continue의 역할

break현재 실행 중인 가장 안쪽 반복문을 완전히 빠져나가는 역할을 해요. 중첩 반복문에서 break를 사용하면 마치 터널을 뚫고 밖으로 나가는 것처럼, 현재 반복문을 탈출해서 바깥쪽 반복문으로 돌아갈 수 있죠. 반면 continue현재 반복문의 나머지 부분을 건너뛰고 다음 반복으로 넘어가는 역할을 해요. 중첩 반복문에서 continue는 마치 징검다리를 건너뛰듯이, 현재 반복문의 나머지 부분을 실행하지 않고 다음 반복으로 넘어가게 해준답니다.

break와 continue의 차이점

이 두 가지 기능의 차이점, 좀 더 자세히 알아볼까요? 예를 들어 3중 반복문이 있다고 생각해 보세요. 가장 바깥쪽 반복문은 10번, 그 안쪽 반복문은 20번, 가장 안쪽 반복문은 30번 반복된다고 가정해 볼게요. 이때 가장 안쪽 반복문에서 break를 만나면 어떻게 될까요? 가장 안쪽 반복문의 실행이 즉시 중단되고, 그 바깥쪽에 있는 20번 반복하는 반복문으로 돌아가게 됩니다. 마치 30층 건물에서 엘리베이터를 타고 20층으로 바로 내려가는 것과 같아요! 만약 20층에서도 break를 만난다면? 네, 맞아요! 10번 반복하는 가장 바깥쪽 반복문으로 돌아가겠죠?

반면에 continue는 어떨까요? 가장 안쪽 반복문에서 continue를 만나면, 현재 반복만 건너뛰고 다음 반복(30번 반복 중 다음 차례)을 계속해서 실행해요. 30번의 반복이 모두 끝나면 자연스럽게 바깥쪽 20번 반복하는 반복문으로 돌아가게 되고요. 마치 30개의 계단 중 하나를 건너뛰고 다음 계단을 밟는 것과 같죠!

break와 continue의 활용

이렇게 breakcontinue를 적절히 사용하면 복잡한 중첩 반복문도 효율적으로 제어할 수 있어요. 특정 조건을 만족하는 경우 반복문을 완전히 빠져나가거나, 특정 반복만 건너뛰고 싶을 때 정말 유용하게 사용할 수 있답니다. breakcontinue는 마치 프로그래밍의 마법 지팡이처럼, 복잡한 반복문을 자유자재로 다룰 수 있게 해주는 강력한 도구예요!

코드 예시

자, 그럼 이제 실제 코드 예시를 통해 좀 더 자세히 알아볼까요? 2차원 배열에서 특정 값을 찾는 경우를 생각해 보세요. break를 사용하면 값을 찾는 즉시 모든 반복문을 빠져나올 수 있고, continue를 사용하면 특정 값을 제외하고 계속해서 탐색을 진행할 수 있죠. 아래 예시 코드를 한번 살펴보세요~

<?php

$matrix = [
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 10],
    [11, 12, 13, 14, 15],
    [16, 17, 18, 19, 20],
];

$target = 13; // 찾고자 하는 값
$found = false;

for ($i = 0; $i < count($matrix); $i++) {
    for ($j = 0; $j < count($matrix[$i]); $j++) {
        if ($matrix[$i][$j] == $target) {
            $found = true;
            echo "값 {$target}을 찾았습니다! 위치: ({$i}, {$j})\n";
            break 2; // 값을 찾으면 바깥쪽 반복문까지 모두 빠져나감
        }
        if ($matrix[$i][$j] % 2 == 0) { // 짝수는 건너뜀
            continue;
        }
        echo "현재 값: {$matrix[$i][$j]}\n";
    }
}

if (!$found) {
    echo "값 {$target}을 찾지 못했습니다.\n";
}

?>

코드 설명

위 코드에서 break 2는 바깥쪽 반복문까지 한 번에 빠져나가는 것을 의미해요. 숫자 2는 두 단계의 반복문을 빠져나가라는 의미죠! continue는 짝수를 만나면 해당 반복만 건너뛰고 다음 숫자를 확인하게 해준답니다. 이처럼 breakcontinue를 활용하면 중첩 반복문을 상황에 맞게 효율적으로 제어할 수 있어요! 정말 편리하지 않나요? 다음에는 더욱 흥미로운 내용으로 찾아올게요! 기대해 주세요~?

 

실제 활용 예시

휴~, 드디어 이론적인 부분은 다 살펴봤네요! 이제부터 진짜 재미있는 부분, 실제 활용 예시를 함께 파헤쳐 볼까요? ^^ 이론만으론 감이 잘 안 잡히셨던 분들도 많으셨을 텐데, 이제 실제 코드를 보면서 breakcontinue가 어떻게 멋지게 활용되는지 꼼꼼하게 알아보도록 하겠습니다! 준비되셨나요?! 자, 그럼 출발~!!

1. 특정 조건을 만족하는 데이터 찾기

1부터 100까지의 숫자 중에서 7의 배수이면서 3으로 나눴을 때 나머지가 2인 숫자를 찾는다고 가정해 봅시다. 이때 break를 활용하면 원하는 숫자를 찾는 즉시 반복문을 종료할 수 있겠죠?

“;
break; // 숫자를 찾으면 반복문 종료!
}
}
?>

이 코드에서는 break 덕분에 원하는 숫자를 찾자마자 반복문을 탈출해서 효율성을 높였어요! 만약 break가 없었다면 100까지 계속해서 불필요한 연산을 수행했겠죠? 상상만 해도 아찔하네요~?

2. 데이터 검증 및 예외 처리

사용자로부터 입력받은 값이 특정 조건을 만족하는지 검증하고, 조건을 만족하지 않으면 에러 메시지를 출력하고 처리를 중단해야 하는 경우가 종종 있죠. 이럴 때 break를 활용하면 깔끔하게 처리할 수 있습니다.

“;
break; // 유효하지 않은 입력이면 더 이상 진행하지 않고 중단!
}

// 유효한 입력일 경우에만 실행되는 영역
echo “유효한 입력입니다. : ” . $input . “
“;
?>

break 덕분에 잘못된 입력값에 대한 추가적인 처리를 막을 수 있어서 정말 편리해요! 코드도 훨씬 간결해지고요!

3. 중첩 반복문에서의 활용 (continue)

이번엔 continue의 활용 예시를 살펴볼게요! 구구단 2단부터 9단까지 출력하는데, 짝수 단만 출력하고 싶다고 가정해 봅시다. continue를 사용하면 홀수 단은 건너뛰고 짝수 단만 출력할 수 있겠죠?!

“;
for ($j = 1; $j <= 9; $j++) { echo "{$i} * {$j} = " . ($i * $j) . "
“;
}
echo “
“;
}
?>

continue 덕분에 홀수 단은 깔끔하게 건너뛰고 짝수 단만 출력할 수 있었죠? 만약 continue가 없었다면, 홀수 단인 경우에도 내부 반복문이 실행되어 불필요한 출력이 발생했을 거예요.

4. 특정 조건을 만족하는 데이터 제외 (continue)

대량의 데이터를 처리할 때 특정 조건을 만족하는 데이터는 제외하고 처리해야 하는 경우가 많습니다. 예를 들어, 쇼핑몰에서 특정 카테고리의 상품을 제외하고 목록을 출력한다고 생각해 보세요. 이때 continue를 사용하면 특정 카테고리의 상품을 제외하고 나머지 상품 정보만 출력할 수 있겠죠?

“티셔츠”, “category” => “의류”],
[“name” => “바지”, “category” => “의류”],
[“name” => “노트북”, “category” => “전자제품”],
[“name” => “스마트폰”, “category” => “전자제품”],
[“name” => “책”, “category” => “도서”],
];

foreach ($products as $product) {
if ($product[“category”] == “전자제품”) { // 전자제품 카테고리 제외
continue; // 현재 상품을 건너뛰고 다음 상품으로!
}
echo $product[“name”] . “
“;
}
?>

continue를 사용하여 특정 카테고리의 상품을 제외하는 방식은 코드를 간결하게 유지하면서 원하는 결과를 얻을 수 있는 효율적인 방법입니다. 실제로 다양한 상황에서 응용할 수 있으니 꼭 기억해 두세요! 이처럼 breakcontinue는 반복문 안에서 조건에 따라 흐름을 제어하는 강력한 도구예요! 적재적소에 활용하면 코드의 효율성과 가독성을 높일 수 있답니다! 여러분도 다양한 상황에 적용해보면서 breakcontinue의 매력에 푹 빠져보세요~!

 

자, 이제 PHP에서 `break`와 `continue`를 어떻게 활용하는지 감이 좀 잡히셨나요? 반복문 안에서 이 작은 친구들이 얼마나 큰 역할을 하는지 알게 되셨을 거예요. 복잡한 코드를 훨씬 간결하고 효율적으로 만들어주는 마법같은 기능이죠! 처음엔 헷갈릴 수 있지만, 몇 번 연습하다 보면 여러분도 금방 익숙해질 수 있답니다. 다양한 상황에 적용해보면서 여러분의 코딩 실력을 한 단계 업그레이드 시켜보세요! 더 궁금한 점이 있다면 언제든 질문해주세요. 함께 PHP 마스터가 되는 그날까지, 즐겁게 코딩해봐요!

 

Leave a Comment