Web
Php 분류

PHP 반복문

작성자 정보

  • console 작성
  • 작성일

컨텐츠 정보

본문

반복문

반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여 수행하는 명령문입니다.

프로그램이 처리하는 대부분의 코드는 반복적인 형태가 많으므로, 반복문은 가장 많이 사용되는 명령문 중 하나입니다.

 

PHP에서 사용되는 대표적인 반복문의 형태는 다음과 같습니다.


1. while 문
2. do / while 문
3. for 문
4. foreach 문


while 문

while 문은 특정 조건을 만족할 때까지 계속 주어진 명령문을 반복해서 실행하는 명령문입니다.

 

while 문을 순서도로 표현하면 다음 그림과 같이 표현할 수 있습니다.

 

while 문

 

while 문의 문법은 다음과 같습니다.

문법

while (조건식{
    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}

 

while 문은 우선 표현식이 참(true)인지를 판단하여 참이면 내부의 명령문을 실행합니다.

내부의 명령문을 전부 실행하고 나면, 다시 표현식으로 돌아와 또 한 번 표현식이 참인지를 판단하게 됩니다.

이렇게 표현식의 검사를 통해, 반복해서 실행되는 반복문을 루프(loop)라고 합니다.

 

예제

$i = 0;
while ($i < 5) {
    echo ($i++)."<br>";
}

코딩연습 ▶

 

while 문 내부에 표현식의 결과를 변경하는 명령문이 존재하지 않을 경우 프로그램은 루프를 영원히 반복하게 됩니다.

이것을 무한 루프(infinite loop)에 빠졌다고 하며, 무한 루프에 빠진 프로그램은 영원히 종료되지 않습니다.

무한 루프는 특별히 의도한 경우가 아니라면 반드시 피해야 하는 상황입니다.

 

따라서 while 문을 작성할 때는 표현식의 결과가 어느 순간에는 거짓(false)을 갖도록 표현식를 변경하는 명령문을 반드시 포함해야 합니다.

 

while 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

do / while 문

while 문은 루프에 진입하기 전에 먼저 표현식부터 검사합니다.

하지만 do / while 문은 먼저 루프를 한 번 실행한 후에 표현식을 검사합니다.

즉, do / while 문은 표현식의 결과와 상관없이 무조건 한 번은 루프를 실행합니다.

 

do / while 문을 순서도로 표현하면 다음 그림과 같습니다.

 

do 문

 

do / while 문의 문법은 다음과 같습니다.

문법

do {
    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
} while (조건식);

 

예제

$i = 0;
$j = 0;
while ($i > 5) {
    echo "변수 i의 값은 ".(++$i)."입니다.<br>";
}
do { // do / while문은 조건식과 상관없이 반드시 한 번은 루프를 실행함
    echo "변수 j의 값은 ".(++$j)."입니다.<br>";
} while ($j > 5);

코딩연습 ▶


for 문

for 문은 while 문과는 달리 자체적으로 초기식, 표현식, 증감식을 모두 포함하고 있는 반복문입니다.

따라서 while 문보다는 좀 더 간결하게 반복문을 표현할 수 있습니다.

 

for 문을 순서도로 표현하면 다음 그림과 같이 표현할 수 있습니다.

 

for 문

 

for 문의 문법은 다음과 같습니다.

문법

for (초기식; 조건식; 증감식) {
    조건식의 결과가 참인 동안 반복적으로 실행하고자 하는 명령문;
}

 

for 문을 구성하는 초기식, 표현식, 증감식은 각각 생략될 수 있습니다.

또한, 쉼표 연산자(,)를 사용하면 여러 개의 초기식이나 증감식을 동시에 사용할 수도 있습니다.

 

for 문을 사용하면 앞선 예제의 while 문을 더욱 더 간결하게 표현할 수 있습니다.

예제

for ($i = 0$i < 5$i++) {
    echo "{$i}<br>";

}

코딩연습 ▶

 

for 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

foreach 문

foreach 문은 일반적인 for 문과는 전혀 다른 형태의 반복문입니다.

foreach 문은 배열의 모든 요소를 손쉽게 순회할 수 있도록 해줍니다.

 

이 반복문은 루프마다 배열의 각 요소를 지정된 변수에 대입합니다.

이렇게 대입받은 변수를 이용하면 루프 안에서 배열의 각 요소에 순차적으로 접근할 수 있습니다.

따라서 foreach 문은 정확히 배열의 길이(length)만큼 반복됩니다.

 

foreach 문의 문법은 다음과 같습니다.

문법

foreach (배열 as 값을저장할변수) {
    실행하고자 하는 명령문;
}

 

예제

$arr = array(2468);
foreach ($arr as $value) {
    echo "변수 \$value의 현재값은 {$value}입니다.<br>";
}
unset($value);

코딩연습 ▶

 

위의 예제에서 변수 $value는 foreach 문 내에서만 사용하는 변수입니다.
따라서 foreach 문이 끝난 뒤에는 unset() 함수를 사용하여 해제해 주는 것이 좋습니다.

 

다음 예제는 배열의 값뿐만 아니라 키값도 저장하여 활용하는 예제입니다.

예제

$arr = array(
    "둘" => 2,
    "넷" => 4,
    "여섯" => 6,
    "여덟" => 8,
);
foreach ($arr as $key => $value) {
    echo "배열 \$arr에서 키값 '{$key}'에 대한 값은 {$value}입니다.<br>";
}
unset($value);

코딩연습 ▶

 

foreach 문에서 실행될 명령문이 한 줄뿐이라면 중괄호({})를 생략할 수 있습니다.

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 40 / 1 페이지
RSS
  • 웹개발에 자주 쓰는 자바스크립트 라이브러리들 - 슬라이드/갤러리 (Carousel)
    등록자 tjslli
    등록일 05.08 조회 1707

    Html 슬라이드/갤러리 (Carousel) 01. 가장 유명한 Slick - https://kenwheeler.github.io/slick/ 설치 &l…

  • [CSS]css 가상 선택자 정리 및 비교 (nth-child, nth-of-type)
    등록자 CSS러버
    등록일 05.08 조회 1620

    Html :nth-child(N)= 부모안에 모든 요소 중 N번째 요소 A:nth-of-type(N)= 부모안에 A라는 요소 중 N번째 요소 :first…

  • 스크롤 이벤트 감지 + jquery + css
    등록자 webveloper
    등록일 04.15 조회 1731

    Html 1. css .caritem{display:flex;align-items:end;flex-direction:column;background:#0…

  • slick slider 커스텀으로 꾸미기 + jquery 이벤트 감지 + 커스텀 슬라이드 번호
    등록자 webveloper
    등록일 04.15 조회 1770

    Html 1. import <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.n…

  • 호버(hover) 할 때 jquery 이벤트 감지 방법
    등록자 webveloper
    등록일 04.15 조회 1781

    Html 안녕하세요. html 코딩 시 hover 할때 감지하는 이벤트 스크립트입니다. <style> .con-group { display: …

  • 그누보드 썸네일 이미지 화질 개선 방법
    등록자 PixelProphet
    등록일 01.10 조회 2729

    Php 그누보드에서 이미지를 올릴때, 간혹 이미지 화질이 떨어져 보이는 현상이 있습니다.... 이럴 때 제가 찾아본 방법 중에 가장 쉽게 해결 할 수 …

  • React 유튜브 채널 추천
    등록자 코드워리어
    등록일 01.09 조회 2192

    React React는 웹 개발에서 매우 인기 있는 라이브러리로, 학습을 위해 다양한 자료들이 필요합니다. React를 학습하고 싶은 분들을 위한 유튜버 …

  • PHP 배열의 기초
    등록자 console
    등록일 01.05 조회 2521

    Php 배열(array)이란? PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미합니다. 맵(map)은한 쌍의 키(key…

  • PHP 기타 제어문
    등록자 console
    등록일 01.05 조회 2552

    Php 루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면,다음 조건식을검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다. 사용자는 c…

  • PHP 반복문
    등록자 console
    등록일 01.05 조회 2524

    Php 반복문 반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여수행하는명령문입니다. 프로그램이 처리하는 대부분의코드는 반복적인 형태가 많으…

  • PHP 조건문
    등록자 console
    등록일 01.05 조회 2375

    Php PHP 표현식 표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다. 표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 …

  • PHP 기타 연산자
    등록자 console
    등록일 01.05 조회 2342

    Php 삼항 연산자(ternaryoperator) 삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음과 같…

  • PHP 비트 연산자
    등록자 console
    등록일 01.05 조회 2552

    Php 비트 연산자(bitwise operator) 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다. 또한, 비트…

  • PHP 논리 연산자
    등록자 console
    등록일 01.05 조회 2608

    Php 논리 연산자(logical operator) 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다. and, or, …

  • PHP 비교 연산자
    등록자 console
    등록일 01.05 조회 2625

    Php 비교 연산자(comparisonoperator) 비교 연산자는피연산자사이의 상대적인 크기를 판단하여,참(true)과 거짓(false)을 반환합니…