쟝이의 세상
php <조건문 switch, 반복문> 본문
조건문
switch문
: 다중 if문 대신 사용 가능
사용 예시)
switch(변수) {
case 값1: 코드1; 코드2; break;
case 값2: 코드3; 코드4; break;
....
default: 코드7; 코드8; break;
}
<?php
/* 초등학교 급식비를 계산하는 프로그램
1학년: 3만원
2학년: 3만5천원
3학년: 4만원
4학년: 4만5천원
5학년: 5만원
6학년: 5만5천원 */
$grade=2;
switch($grade) {
case 1:
echo "1학년 급식비: 3만원";
break;
case 2:
echo "2학년 급식비: 3만5천원";
break;
case 3:
echo "3학년 급식비: 4만원";
break;
case 4:
echo "4학년 급식비: 4만5천원";
break;
case 5:
echo "5학년 급식비: 5만원";
break;
case 6:
echo "6학년 급식비: 5만5천원";
break;
default:
echo "학년을 잘못 입력하셨습니다.";
break;
}
?>
/*
2학년 급식비: 3만5천원
*/
----> 위의 switch문을 다중 if문으로 바꾸면
<?php
$grade=4;
if($grade==1)
echo "1학년 급식비는 <b>3만원</b> 입니다.";
elseif($grade==2)
echo "2학년 급식비는 <b>3만5천원</b> 입니다.";
elseif($grade==3)
echo "3학년 급식비는 <b>4만원</b> 입니다.";
elseif($grade==4)
echo "4학년 급식비는 <b>4만5천원</b> 입니다.";
elseif($grade==5)
echo "5학년 급식비는 <b>5만원</b> 입니다.";
elseif($grade==6)
echo "6학년 급식비는 <b>5만5천원</b> 입니다.";
else
echo "학년을 잘못 입력하였습니다.";
?>
/*
4학년 급식비는 4만5천원 입니다.
*/
반복문
while문
** while문에서 초기값을 설정하는 것은 while문 밖에서 설정해준다.
while의 표현식이 True면 코드 블록을 반복하고, 표현식이 False가 되면 코드 블록을 빠져나온다.
표현식의 값은 루트의 시작에서 매번 체크가 됨
<?php
$num=2;
echo ("<html><body>
<h3>2단 구구단 표 만들기</h3>
<table border='1' width='100'>");
$b=1;
$c=0;
while($b<=9) {
$c=$num*$b; //2단 연산
echo "<tr><td>$num x $b = $c</td></tr>";
$b++;
}
echo ("</table></body></html>");
?>
HTML을 이용하여 php코드를 작성
구구단 연산한 값을 table 태그에 넣어 결과 값 출력
** while문이 실행되는 과정 설명 ** |
b=1일 때, 2*1하여 c의 값은 2가 된다. -> while문 마지막에 b++(1증가)하여 b는 2가 된다. |
b=2일 때, 2*2하여 c의 값은 4가 된다. -> while문 마지막에 b++하여 b는 2가 된다. |
.... |
b=9일 때, 2*9하여 c의 값은 18이 된다. -> while문 마지막에 b의 값을 1 증가시켜 10이 된다. |
b=10일 때, 표현식의 결과가 False가 되므로 while문을 빠져나간다. |
<?php
//1부터 10까지 더하는 프로그램
$num=1;
$total=0;
while($num<=10){
echo "{$total}+{$num}=";
$total+=$num;
echo "{$total}<br>";
$num++;
}
?>
/*
0+1=1
1+2=3
3+3=6
6+4=10
10+5=15
15+6=21
21+7=28
28+8=36
36+9=45
45+10=55
*/
** while문이 실행되는 과정 설명 ** |
num=1일 때, total=0 이므로 0+1=1, 결과로 나온 1이 total값이 된다. -> num값은 while문 마지막에 num++(1증가)하여 num의 값은 2가 된다. --------연산한 후 num의 값 증가 -------- |
num=2일 때, total=1 이므로 1+2=3, 결과로 나온 3이 total값이 된다. -> num값은 while문 마지막에 num++(1증가)하여 num의 값은 3이 된다. |
num=3일 때, total=3 이므로 3+3=6, 결과로 나온 6이 total값이 된다. -> num값은 while문 마지막에 num++(1증가)하여 num의 값은 4가 된다. |
.... |
num=10일 때, total=45 이므로 45+10=55, 결과로 나온 55가 total값이 된다. -> num값은 while문 마지막에 1증가하여 11이 된다. |
num=11일 때 while문 조건식이 False가 되므로 while문을 빠져나온다. |
<?php
//1부터 100 사이에 있는 5의 배수의 합을 구하는 프로그램
$num=1;
$sum=0;
while($num<=100){
if($num%5==0){
$sum+=$num;
}
$num++;
}
echo "1부터 100사이의 5의 배수의 총합: {$sum}";
?>
/*
1부터 100사이의 5의 배수의 총합: 1050
*/
** while문이 실행되는 과정 설명 ** |
num=1일 때, 1%5의 값이 0이 아니므로 if문을 수행하지 않고 마지막의 num값만 증가시킨다. 결과 값은 num=2, sum=0 |
num=2일 때, 2%5의 값이 0이 아니므로 if문을 수행하지 않고 마지막의 num값만 증가시킨다. 결과 값은 num=3, sum=0 |
... num=5일 때, 5%5의 값이 0이므로 if문의 sum=sum+num을 수행 -> 0+5의 값을 sum에 저장하고, num의 값을 증가시킨다. 결과 값은 num=6, sum=5 |
num=6일 때, 6%5의 값이 0이 아니므로 if문 수행하지 않음, num의 값만 증가시킨다. 결과 값은 num=7, sum=5 |
... num=10일 때, 10%5의 값이 0이므로 if문의 sum=sum+num을 수행 -> 5+10의 값을 sum에 저장하고, num의 값을 증가시킨다. 결과 값은 num=11, sum=15 |
.... num=100까지 수행하여 while문을 빠져 나와 최종적으로 저장되어있는 sum의 값을 출력 |
for문
** for문에서의 초기값은 괄호 안에서 설정할 수 있다.
사용 예시)
for (초기값; 조건; 증감) {
코드1;
}
※ HTML 코드 속에 php구문을 꽂아서 반복문을 구현 -> php파일로 저장 (html파일로 저장 시 php구문이 실행되지 않음)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>게시판 리스트 - for문 연습</title>
</head>
<body>
<h3>▶ 게시판 목록보기</h3>
<table border="1" width="600">
<tr align="center" bgcolor="#cccccc">
<td>번호</td>
<td>제목</td>
<td>글쓴이</td>
<td>날짜</td>
</tr>
<?php
$i=1;
$name="홍길동";
$date="2024-08-30";
for($i=1; $i<=10; $i++){
$title="게시판 제목".$num;
echo "<tr>
<td>{$i}</td>
<td>{$title}</td>
<td>{$name}</td>
<td>{$date}</td>
</tr>";
}
?>
</table>
</body>
</html>
** for문 설명 ** |
for문 안에 tr태그와 td태그가 모두 들어가는 것으로 행의 반복이 이루어진다. 변수 i의 반복 -> 초기값=1; 조건은 10이하; 초기값을 1씩 증가 |
<!DOCTYPE html>
<html>
<body>
<h3>구구단표</h3>
<table border="1" width="900">
<tr bgcolor="#cccccc">
<th>2단</th>
<th>3단</th>
<th>4단</th>
<th>5단</th>
<th>6단</th>
<th>7단</th>
<th>8단</th>
<th>9단</th>
</tr>
<?php
for($i=1; $i<10; $i++){
echo "<tr align='center'>";
for($num=2; $num<10; $num++){
$total=$i*$num;
echo "<td>{$num} x {$i} = {$total}</td>";
}
echo "</tr>";
}
?>
</table>
</body>
</html>
** for문 설명 ** |
i=1일 때, tr 태그를 먼저 선언해주고 안에 있는 두번째 for문이 돌아간다. -> 즉, i가 1일 때, num은 2~9까지 반복이 일어남 num=9까지 완료되었을 때, 두번째 for문이 종료되고 tr태그가 닫히면서 행 하나가 완성된다. |
i=2일 때, 또 다시 tr 태그를 선언해주고 안에 있는 두번째 for문이 돌아간다. -> 즉, i가 2일 때, num은 2~9까지 반복이 일어남 num=9까지 완료되었을 때, 두번째 for문이 종료되고 tr태그가 닫히면서 두번째 행이 완성된다. i를 9까지 반복하여 테이블의 행을 만든다. |
'수업내용' 카테고리의 다른 글
php <form태그와 변수값 전달> (6) | 2024.09.03 |
---|---|
php <배열과 함수> (2) | 2024.09.02 |
php <문자열 출력 echo, 연산자, 변수, 조건문 if> (6) | 2024.08.28 |
<WIN2022 + PHP + SQL Server> 웹 데이터베이스 연동 (0) | 2024.08.28 |
암호화 알고리즘 (0) | 2024.08.26 |