PHP의 반복문 (for, while, do while, break, continue)
PHP의 반복문 (for, while, do while, break, continue)
조건문에 이어서 이번에는 반복문을 알아보자
PHP의 반복문은 크게 for문과 while문으로 구분되며, do while문을 사용할 수 있다.
그리고 반복문의 흐름을 제어하는 break와 continue 가 있다.
1. for 반복문
반복문의 for문은 강력하다. 루프로 들어갈 때 변수를 지정하고, 루프를 반복할 때 조건을 검사하고, 각 반복마다 변수를 변경하는 기능이 모두 있다.
각 for문에는 3개의 매개 표현식이 있다.
for(표현1; 표현2; 표현3)
- 표현1 : 초기화 표현식
- 표현2 : 조건 표현식
- 표현3 : 변경 표현식
<?php for($count = 1 ; $count <=12 ; $count++){ // $count 를 1로 초기화 하고 // 12보다 작거나 같으면 반복한다. // 반복할때마다 $count를 1씩 증가시킨다. echo "$count times 12 is " . $count * 12; // $count값에 따른 문장을 출력한다. echo "<br/>"; // 줄바꿈 } ?> |
변수를 증가할 수 있다. 세 개의 매개 변수는 반드시 세미콜론(;)으로 구분한다.
이런 복잡한 방식은 잘 사용하지 않는다.
<?php for($i = 1, $j=1 ; $i + $j <10 ; i++, j++){ // $i와 $j 를 1로 초기화 하고 // $i + $j 가 10보다 작으면반복한다. // 반복할때마다 $i 와 $j를 1씩 증가시킨다 // 로직 작성 } ?> |
; $i = 1, $j = 1 // $i 와 $j의 초기화
; $i + $j < 10 // 탈출 조건
; $i++ , $j++ // 각 반복의 끝에 $i 와 $j를 변경
2. while 반복문
반복문을 실행하는 다른 방법으로 while문이 있다.
while문은 조건이 만족하면 계속 반복한다.
<?php $count = 0; // $count 를 0으로 초기화 한다. while(++$count <= 12){ // $count 값을 1증가시키고 12보다 작거나 같은지 확인한다. // ++$count 값이 12보다 작거나 같으면 while문이 반복된다. echo "$count times 12 is ".$count*12."<br/>"; // $count를 대입하여 문자열 출력 } ?> |
while 문이 for 문보다 더 적합할 때는 언제인가? 조건문이 간단하고 규칙적인 변수에 기인하지 않을 때다. 예를 들면, 특별한 입력이나 오류를 체크하고, 오류가 발생했을 때 반복문을 빠져나와야 하면 while 문 사용을 권한다.
3. do while 반복문
while 반복문을 조금 변형하면 코드가 먼저 실행되고 조건을 나중에 검사하는 do while 문이 된다.
반복문이 먼저 한번 실행됨으로 인하여 반 조건이 되는 변수의 초기값이 달라짐에 유의하자.
<?php $count = 1; // $count 를 1로 초기화 한다. do{ echo "$count times 12 is ".$count*12."<br/>"; // $count를 대입하여 문자열 출력 }while(++$count <= 12); // $count 값을 1증가시키고 12보다 작거나 같은지 확인한다. // ++$count 값이 12보다 작거나 같으면 while문이 반복된다. ?> |
4. break ; 반복문 빠져나가기
switch 문이 빠져나오는 것과 똑같이 break 명령어를 사용해 반복문을 빠져나온다.
<?php $fp = fopen("text.txt", 'wb'); // text.txt 파일 오픈 후 $fp 에 포인터 반환 for($j =0 ; $j <100 ; ++$j){ // $j를 0으로 초기화 후 for문 100번 반복 $written = fwrite($fp, "data"); // 반복시마다 "data"를 text.txt에 쓰고 // $written에 제대로 쓰여진 문자의 개수를 대입한다. if(!$written) break; // 파일에 쓰는데 오류가 있어 FALSE를 반환시, for문을 빠져나온다. } fclose($fp); // 오픈한 text.txt 파일을 닫는다. ?> |
break 2;
5. continue ; 다음 루프로 넘어가기
continue 문은 PHP에게 현재 루프를 중단하고 바로 다음 루프로 가라고 알리는 것 외에는 break 문과 비슷하다. 따라서 전체 루프를 빠져나가는 대신 현재의 루프만 지나간다.
이 방법은 현재의 루프를 계속 실행할 필요가 없고 프로세서의 시간을 절약해야 하거나, 다음 루프로 이동해 오류 발생을 방지하는 등의 경우에 유용하게 사용된다.
<?php $j = 11; // $j 를 11로 초기화 while($j-- > -10){ // $j 가 -10 보다 큰지 비교 후 1 감소 if($j==0) continue; // 0으로 나누면 오류가 발생하기에, $j 가 0이면, 다음 루프로 넘어간다. echo "$j ".(10/$j) . "<br/>"; // 10을 $j로 나눈 결과를 출력 } ?> |
출처: https://hyeonstorage.tistory.com/104?category=549768 [개발이 하고 싶어요]
'PHP > php' 카테고리의 다른 글
[PHP][TIP] http 302 (redirect) 일 때 curl 사용하기 (0) | 2021.01.06 |
---|---|
PHP의 객체 (2/2) (메소드, 속성, 상수, 메소드 범위, 상속) (0) | 2019.07.25 |
PHP의 객체 (1/2) (클래스 정의, 객체 생성, 접근, 생성자, 소멸자) (0) | 2019.07.25 |
PHP의 함수 (정의, 반환, 참조, 포함과 요구) (0) | 2019.07.25 |
PHP의 조건문 (if, switch, ? 연산자) (0) | 2019.07.25 |
PHP 시작 (2/2) - 알아두면 좋은 몇가지 (0) | 2019.07.25 |
PHP 시작 (1/2) - 이것만은 알고 시작하자. (0) | 2019.07.25 |
[PHP] WAMP 설치하기 (3/4) - Zend Server CE mySQL 계정 생성 (0) | 2019.07.25 |