홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP 기초 다지기 - 제어문
11년 전
흔히 프로그래밍 책에서 말하는 "프로그램의 흐름(program flow)"이란 프로그램이 실행되는 구문(statements)의 순서다. 프로그래밍 구문은 처음부터 끝까지 연속적인 일련의 순서로 실행된다. 제어문은 이 흐름을 변경할 때 사용된다. 예를 들면 어떤 조건 내에서만 실행하거나, 어떤 것을 반복적으로 실행하는 경우에 사용할 수 있다. 만약 독자가 다른 프로그래밍 언어를 다뤄 보았다면 PHP의 제어문을 금방 이해할 수 있을 것이다. 제어문은 대부분의 프로그래밍 언어에서 비슷한 형태로 사용되기 때문이다.




"if...else" 구문



가장 자주 쓰이는 제어문인 if... else는 주어진 조건이 참(true)이거나 거짓(false)일 경우에 따라 선택적으로 내용을 실행시킨다.




if (참/거짓을 판단할 표현식) {
참일 경우 실행할 코드...
}




else {
...거짓일 경우 실행할 코드...
}



예를 들면, 이름이 "홍길동"인 사람에게 특별히 환영한다는 메시지를 보내려고 한다면 다음과 같이 작성하면 된다.




if ($name == "홍길동") {
print "안녕 홍길동, 사실 내 이름도 홍길동이야";
}




구입한 상품 가격이 10,000원 이하면 우송료가 1,000원이지만, 10,000원을 넘으면 우송료가 2000원 추가되는 조건을 만들어보자.




if ($total <= 10000) {
$total += 1000;
}
else {
$total += 2000;
}




if의 조건에 맞지 않을 경우 다시 한번 조건을 판단하는 elsief는 else(나머지 모든 경우) 전에 위치한다. 예를 들면 우송료가 10,000원 이하인 경우엔 1,000원, 10,000원 초과 50,000원 이하인 경우엔 2,000원, 50,000원 초과인 경우에는 3,000원 인 예를 살펴보자.




if ($total <= 10000) {
$total += 1000;
}
elseif ($total <= 50000) {
$total += 2000;




}
else {
$total += 3000;
}




위의 elsief 구문은 ($total <= 10000)인 첫 번째 조건이 맞지 않을 때 실행된다. 즉, $total 값이 50000보다 작거나 같을 때 실행된다.




"while" 구문



while문은 어떤 조건을 만족하는 동안 반복적으로 실행되는 것이다. .다음 100까지 세는 while문을 보자.




$counter = 0;
while ($counter <= 100) {
print "$counter<BR>";
$counter++;
}




while루프동안 각각 반복되는 과정 내내 조건을 테스트한다. 조건이 참값(true)인 동안은 while 루프를 계속 실행한다. 위의 스크립트는 $counter값이 100이 될 때까지 숫자를 차례로 출력한다. 조심해야 할 것은 만약 조건이 처음부터 거짓(false)이면 while 루프 내의 구문은 아예 실행되지 않는다는 것이다. 또 하나 조심해야 할 것은 마지막에 어떤 조건에서 거짓 값(false)을 만나 종료되도록 해야 한다는 것이다. 그렇지 않으면 무한정 계속 돌게 되고 심한 경우 컴퓨터 자체를 멈춰 버리거나 프로그램 에러가 발생한다. $counter는 각 루프마다 1씩증가하여 100이 넘으면 false가 되어 반복이 종료된다.




"do...while" 구문



do... while 문은 위의 while 문과 거의 비슷하지만 블록의 끝에서 참, 거짓을 판단한다는 것이 다르다.




$counter = 0;
do {
print "$counter<BR>";
$counter++;
}
while ($counter <= 100);



위의 예제 결과는 while 문의 예제 결과와 똑같이 0부터 100까지 출력한다. 차이가 나는 것은 주어진 조건이ㅐ 첫 번째에서 false 값을 갖더라도 적어도 한번은 이 구문이 실행된다는 것이다(while문은 아예 실행되지 않는다). 조건 판단을 끝에서 하기 때문이다.




"for" 구문



for문은 시작과 끝을 처음부터 보여주는 것만 다르고 나머지는 while문과 같다. for 구문은 주어진 숫자를 연속적으로 반복하는데 많이 사용한다. 예제를 반복하기 위해 0부터 100까지 출력하려고 한다면..

for ($counter = 0; $counter <= 100; $counter++) {
print "$counter<BR>";
}



변수가 3번 나타난다 : 처음에는 조건 변수의 시작 값, 두 번째는 for문이 종료되는 것을 판단할 마지막 값, 세 번째는 루프를 돌면서 증가하거나 감소할 값을 넣는 변수다(즉, 증가치나 감소치를 정의한다).




"break"와 "continue"로 제어문 건너뛰기



break와 continue 구문을 사용하여 조건 루프 내에서 프로그램 흐름을 변경할 수 있다. break문은 구문 블록 내에서 주어진 경로에 다른 조건이 남았더라도 무시하고 즉시 루프를 빠져나가고, continue 문은 루프의 처음으로 돌아가 조건을 테스트 한다. 예제를 보자. 2로 나누어 떨어지는 숫자만 출력하려고 한다.




for ($counter = 0; ; $counter++) {
if (($counter % 2) != 0) {
continue;
}
print "$counter<BR>";
if ($counter >= 100) {
break;
}
}



몇 가지 중요한 점을 살펴보자. 필요한 for구문에서 끝나는 조건을 삭제할 수 있다. 그러나 이런 경우 break 구문으로 어디선가 루프를 종료하지 않으면 무한정 반복될 수 있다. 구문 블록 내에서 조건을 테스트해 보았듯이, counter 가 한계를 넘어가면 break 구문이 실행된다. 구문 블록 내의 첫번째 if 구문은 $counter를 2로나눈 나머지 값이 0인지 판단한다. 만약 나머지가 0이 아니라면 2로 나누어지지 않는다는 뜻이므로 continue 구문으로 넘어간다. 그러면 구문의 남은 부분을 건너뛰고 for 구문 처음으로 돌아가기 때문에 결과는 출력되지 않는다.
추천추천 : 168 추천 목록
번호 제목
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
3,008
 윈도우10 시스템 파일 및 Dism 검사
3,007
 텍스트 줄바꿈, 글자자르기 CSS
3,006
 jQuery Mobile에서 유용한 코드 10가지.
3,005
 [PHP] dirname()함수와 $_SERVER 관련 상수들
3,004
 [PHP] 파일 크기, 사이즈 불러오는 함수, filesize()
3,003
 [jQuery] jQuery Quick API
3,002
 [ transition ] 링크 hover 색상 변화 속도 조절
3,001
 PHP 5.3.0 에서 사라진 함수들 대체
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.