보통 프로그램은 위에서 아래로 순차적 (절차적 : Batch file)으로 코드를 실행하는 순차처리이지만,
필요에 의해 건너뛰기, 반복, 순서를 바꾸는 등으로 처리의 흐름을 바꿔줄 필요가 있을 때, 제어문을 사용하면 된다.
제어문 - 분기문 - 조건 분기 : if, else, switch
무조건 분기 : break, continue
반복문 : while, for, do~while
IF ~ ELSE -
IF 문은 'if-조건'이 참일 때 실행되고, 거짓이면 ELSE 문이 실행된다.
조건절에서 관계연산자 a>b a<b a>=b a<=b a==b a!=b 등을 사용한다.
1. IF 문
조건식이 참이면 실행하며, 거짓이면 ELSE를 실행한다.
조건절에서 관계연산자 a>b a<b a>=b a<=b a==b a!=b 등을 사용한다.
$score=$_POST[score];
if ($score >= 90)
echo "A";
elseif ($score >= 80)
echo "B";
elseif ($score >= 70)
echo "C";
elseif ($score >= 60)
echo "D";
else
echo "E";
2. WHILE 문
WHILE 문은 조건식이 참인 동안, 거짓이 될 때까지 반복 실행된다.
( if ~ else if ~ else if ~ else 와 같은 구문이다 )
$i = 1;
$sum = 1;
while ($i <= 10) { // { ~ } code block
$sum *= $i;
$i++;
}
echo $sum;
3. FOR 문
for ($i=0; $i < 10; $i++) 이러한 형태로 반복 조건을 준다.
for($dan=2; $dan<10; $dan++) {
echo "{$dan}단 구구단 표 <br>";
for ($i=1; $i<10; $i++)
echo "$dan * $i =".($dan * $i)."<br>";
}
4. FOREACH 문
foreach 문장은 배열을 인자로하여 요소를 반복시키는 반복문이다. 따라서, 배열을 먼저 생성한 뒤 작업한다.
$arr = array("java","python","c","c++","php","html","javascript","jquery"); // 배열 선언
foreach ($arr as $value) {
echo $value . "<br>";
}
----------------------------------------------
for ($i=0; $i < count($arr); $i++)
echo $i;
arr 갯수 8개 까지 셈을 하여 i <8 이 된다.
i 는 0부터 셈을 하여 총 8번을 돌리기 때문에,
echo $i; 값은 8이 된다. ( 실행되는 횟수가 i 에 대입이 된다. )
$i < count($arr) 에서 count($arr) 가 마지막 7이 됬을 때
$i++ 은 실행이 되지 않고 밑에 코드가 수행된다.
5. DO ~ WHILE 문
반드시 한번은 실행될 수 있는 구조이다. DO ~ 부터 실행한 뒤 WHILE 조건을 가려 거짓일 때까지 실행한다.
$i = 1;
do {
echo $i . "<br>";
$i++;
} while($i<=99); // false 고로 한번만 출력됨.
6. BREAK & CONTINUE
while, do ~ while 는 무한 반복이 일어날 수 있어, break 와 continue로 제어문을 사용한다.
break 문은 반복문 실행을 멈추고 반복문을 나가고,
for($i=0; $i<11; $i++) { // 1 부터 11까지 반복문이지만 $i값이 5일 때, break 제어문으로 반복문을 종료한다.
if ($i==5)
break;
echo $i;
}
continue 문은
for($i=0; $i<11; $i++) { // 5를 제외하고 0부터 10까지 출력
if ($i==5) // echo $i; if문에서 5일때만 출력
continue; // i가 5일 때, echo로 내려가지말고
echo $i; // 다시 for문으로 올라감
}
7. SWITCH ~ CASE -
switch 문은 하나의 변수를 값에 따라서 서로 다른 내용을 실행시키는 경우에 사용한다.
대부분 switch 문은 if ~ elseif ~ 문으로 변환할 수 있다.
switch 문 속의 case 문은 각각의 수행문 끝에 break; 를 넣어서 해당 조건에 만족하는 행을 만나면 실행한 뒤
바로 switch 순환문 전체를 벗어나서 무한 순환을 막을 수 있다.
각 case에 해당되는 내용이 없을 때에는 if ~ else 문에서처럼 맨 끝에 default - 문이 실행된다.
<?php
$a = $_GET[a];
if ($a == 1)
echo "one";
elseif ($a == 2)
echo "two";
elseif ($a == 3)
echo "three";
else
echo "other";
?>
==>Switch 문으로 변환
<?php
$a = $_GET[a];
switch ($a) {
case 1 : echo "one";
break;
case 2 : echo "two";
break;
case 3 : echo "three";
break;
default : echo "other";
}
?>
배열은 여러 개의 동일한 타입의 데이터를 하나의 변수로 묶은 것이다. ( 보통 반복문과 함께 실행, 규칙적인 값을 대량의 자료로 다루기 용이 )
array(...) 식으로 표현, (...)에는 요소가 들어간다.
전체 배열을 붂어서 $a[] 식으로 처리하는데 배열의 요소는 0부터 시작된다. $a[1], $a[3] 등은 하나의 요소를 추출한다.
[] 안에는 상수, 변수, 문자열, 그리고 수식도 가능하다.
만일 첫 번째 학생의 수학점수가 있다면
$a0 = 75;
echo $a; 하고, 또 두 번째 학생의 점수가 있다면
$a1 = 82;
echo $a1; 식으로 처리한다면 ... 40명이 있다면 40개의 변수가 필요할 것이다.
==>이럴 때
$a[0] = 75;
$a[1] = 82;
$a[2] = 91;
$a[3] = 73;
$a[4] = 89; 식으로 하면 하나의 연속된 변수 $a 덩어리가 된다.
=>전체 묶음이 $a이고, 첫 번째 변수가 $a[0], 두 번째 변수가 $a[1], 세 번째 변수가 $a[2], ...식이 된다.
$a[1]을 배열의 원소(item)이라고 한다. [1]은 일종의 주소와 같은 역할을 하는데 흔히 인덱스(index)라고 부른다.
인덱스는 0부터 시작된다. $a[1]이나 $a[3]을 하나의 변수처럼 보면 된다.
그리고 echo $a[3] 하면 $a[] 배열의 4번째 원소 값을 화면에 출력해준다. [] 안에는 상수, 변수, 문자열, 그리고 수식도 가능하다.
$a = array(10,74,24,47,66,29,5); //배열 선언
$maxv = $a[0];
$minv = $a[0];
for ($i=1; $i<count($a); $i++) { // 반복문으로 if에서 요소 2개씩 비교하여 max 값과 min 값을 구함
if($a[$i] > $maxv)
$maxv = $a[$i];
if($a[$i] < $minv)
$minv = $a[$i];
}
echo "최대값 : $maxv<br>";
echo "최소값 : $minv<br>";
PHP 게시판 만들기 (0) | 2022.06.07 |
---|---|
PHP Login(COOKIE) (0) | 2022.06.07 |
PHP 연관배열(Associate array) (0) | 2022.06.07 |
PHP 함수 (function) (0) | 2022.06.07 |
PHP (0) | 2022.06.07 |