상세 컨텐츠

본문 제목

PHP 반복문 조건문

BackEnd/PHP

by H_Develop 2022. 6. 7. 08:18

본문

보통 프로그램은 위에서 아래로 순차적 (절차적 : 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>";

'BackEnd > PHP' 카테고리의 다른 글

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

관련글 더보기