제어문
순차적인 흐름을 제어해야 할 때 사용하는 명령문
조건문, 반복문이 포함
조건문
프로그램 내에서 주어진 조건식의 결과에 따라 별도의 명령을 수행하도록 제어하는 명령문
가장 기본 - if문
if 문
<문법>
if (조건식) {
조건식의 결과가 참일 때 실행하고자 하는 명령문
}
$num_01 = 10;
$num_02 = 20;
if($num_01 == $num_02){
echo "{$num_01}과{$num_02}은 같은 수입니다.";
}
if($num_01 < $num_02) {
echo"{$num_01은 {$num_02} 보다 작은 수 입니다.";
}
if($num_01 > $num_02) //실행될 명령문이 한 줄뿐이라면 중괄호를 생략할 수 있음
echo"{$num_01}은 {$num_02}보다 큰 수 입니다.";
else문
$num_01 = 20;
$num_02 = 20;
if($num_01 == $num_02){
echo "{$num_01}과 {$num_02}은 같은 수입니다.";
}
else{
if($num_01 < $num_02)
echo"{$num_01}은 {$num_02}보다 작은 수입니다.";
else
echo "{$num_01}은 {$num_02}보다 큰 수입니다.";
}
elseif문
elseif문은 if문 처럼 조건식을 설정할 수 있음, 중첩된 if문을 좀 더 간결하게 표현
$num_01 = 30;
$num_02 = 20;
if($num_01 == $num_02){
echo"{$num_01}과 {$num_02}는 같은 수입니다.";
}
elseif(num_01 < $num_02){
echo"{$num_01}은 {$num_02}보다 작은 수 입니다.";
}
else{
echo"{$num_01}은 {$num_02}보다 큰 수 입니다.";
}
>>>결과
echo "{$num_01}은 {$num_02}보다 큰 수입니다.";
switch문
$var = "오렌지";
switch($var){
case"귤":
echo"여기 있는 과일은 귤입니다.";
break;
case"사과";
echo"여기 있는 과일은 사과입니다.";
break;
case"바나나";
echo"여기 있는 과일은 바나나입니다.";
break;
default:
echo"여기 있는 과일은 처음 보는 과일입니다.";
break;
}
>>>결과
여기 있는 과일은 처음 보는 과일입니다.
반복문
프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여 수행하는 명령문
1. While문
2. do / While문
3. for문
4. foreach문
$i = 0;
while($i < 5){
echo($i++)."<br>";
}
do / while 문
표현식의 결과와 상관없이 무조건 한 번은 루프를 실행
$i = 0;
$j = 0;
while($i > 5){
echo"변수 i의 값은 ".(++$i)."입니다.<br>";
}
do{
echo"변수 j의 값은".(++$j)입니다.<br>";
} while($j > 5);
for 문
초기식, 표현식, 증감식을 모두 포함
for($i = 0; $i < 5; $i++){
echo"{$i}<br>";
}
>>>결과
0
1
2
3
4
foreach문
foreach 문은 배열의 모든 요소를 손쉽게 순회할 수 있도록 해줌
foreach 문은 정확히 배열의 길이(length)만큼 반복
foreach (배열 as 값을저장할변수) {
실행하고자 하는 명령문;
}
$arr = array(2,4,6,8);
foreach ($arr as $value) {
echo"변수 \$value의 현재값{$value}입니다.<br>";
}
unset($value);
변수 $value는 foreach 문 내에서만 사용하는 변수입니다.
따라서 foreach 문이 끝난 뒤에는 unset() 함수를 사용하여 해제해 주는 것이 좋음
루프의 제어
일반적으로 조건식 검사를 통해 루프로 진입하려면
사용자는 continue 문과 break문을 통해 제어할 수 있음
continue 문
continue문은 루프 내에서 사용, 해당 루프의 나머지 부분을 건너뛰고, 바로 다음 조건식의 판단으로 넘어가게 함
보통 반복문 내에서 특정 조건에 대한 처리를 제외하고자 할 때 자주 사용
1부터 100까지 정수 중에서 4의 배수를 제외하고 출력
$exceptNum = 4;
for ($i=0; $i<=100;; $i++){
if($i % $exceptNum == 0)
continue;
echo "{$i}";
}
>>>결과
1 2 3 5 6 7 9 10 11 13 14 15 17 18 19 21 22 23 25 26 27 29 30 31 33 34 35 37 38 39 41 42 43 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 65 66 67 69 70 71 73 74 75 77 78 79 81 82 83 85 86 87 89 90 91 93 94 95 97 98 99
break문
해당 반복문을 완전히 종료시키고, 반복문 다음에 위치한 명령문으로 이동
조건식의 판단 결과에 상관없이, 반복문을 완전히 빠져나가고 싶을 때 사용
$sum = 0;
$startNum = 1;
$endNum = 100;
$i = $startNum;
while(true){
$sum += $i
if($i == $endNum)
break;
$i++;
}
echo "{$startNum}에서부터 {$endNum}까지 더한 값은 {$sum}입니다.";
>>>결과
1에서부터 100까지 더한 값은 5050입니다.
goto문
goto문은 프로그램의 흐름을 지정된 레이블로 무조건 변경하는 명령문
손쉽게 사용할 수 있지만, 프로그램의 흐름을 매우 복잡하게 만들기도 하므로 거의 사용하지 않음