4장4장 한빛미디어 ( 주 ) 제어문과 반복문 3장3장 제어문 (if 문, switch 문 ) 의 기본 문 법을 이해한다 제어문을 이용하여 응용 프로그램을 작성하는 방법을 익힌다. 반복문 (while 문, for 문, do ~ while 문 ) 의 기본 문법을 이해한다. 반복문을 이용한 응용 프로그램 작성 법을 익힌다 이중 for 문의 동작을 이해한다. 제어문 (if 문, switch 문 ) 의 기본 문 법을 이해한다 제어문을 이용하여 응용 프로그램을 작성하는 방법을 익힌다. 반복문 (while 문, for 문, do ~ while 문 ) 의 기본 문법을 이해한다. 반복문을 이용한 응용 프로그램 작성 법을 익힌다 이중 for 문의 동작을 이해한다.
2 2 Section 01 주요 학습 내용 01. 제어문 02. 반복문
3 3 Section 01 if ~ else 문 예제 02 【예제 3-1 】 pass.php 1 : <? 2 : $score = 70; 3 : 4 : if ($score >= 80) 5 : echo (" 점수가 {$score} 점 이므로 합격입니다. "); 6 : else 7 : echo (" 점수가 {$score} 점 이므로 불합격입니다. "); 8 : ?> 참이면 5 행 실행 거짓이면 7 행 실행
4 4 Section 01 if 조건식에 사용되는 비교 연산자 01 연산자의미예결과 값 == 같다 3 == 2 3 은 2 와 같지 않으므로 거짓 != 같지 않다 5 != 7 5 는 7 과 같지 않으므로 참 > 크다 5 > 7 5 는 7 보다 크지 않으므로 거짓 < 작다 8 < 10 8 은 10 보다 작으므로 참 >= 크거나 같다 9 >= 9 “ 크거나 같다 ” 에서 “ 같다 ” 조건에 해당하여 참 <= 작거나 같다 10 <= 7 10 은 7 보다 작거나 같지 않으므로 거짓
5 5 Section 01 if ~ 문 예제 02 【예제 3-2 】 free_fee.php 1 : <? 2 : $fee = 10000; 3 : $age = 5; 4 : 5 : if ( $age < 7 ) 6 : { 7 : $fee = 0; 8 : } 9 : 10 : echo " 나이가 {$age} 세 이므로 입장료는 {$fee} 원 입니다. "; 11 : ?> 참인 경우에만 7 행 실행 변수를 문자와 분리
6 6 Section 01 홀수 / 짝수 판별 02 【예제 3-3 】 odd.php 1 : <? 2 : $a = 3; 3 : 4 : if ($a % 2 == 1) 5 : echo "$a 은 ( 는 ) 홀수 입니다. "; 6 : else 7 : echo "$a 은 ( 는 ) 짝수 입니다. "; 8 : ?> 참인 경우에는 5 행 실행 거짓인 경우에는 7 행 실행
7 7 Section 보다 큰지를 판별 02 【예제 3-4 】 comp_100.php 1 : <? 2 : $a = 10; 3 : 4 : if ($a > 100) 5 : echo "$a 은 ( 는 ) 100 보다 큽니다. "; 6 : else 7 : echo "$a 은 ( 는 ) 100 보다 크지 않습니다. "; 8 : ?> 참인 경우에는 5 행 실행 거짓인 경우에는 7 행 실행
8 8 Section 01 다이어트 필요 유무 02 【예제 3-5 】 diat.php 1 : <? 5 : $h = 170; 6 : $w = 40; 7 : $a = ($h-100)*0.9; 8 : 9 : echo (" 키 : $h "); 10 : echo (" 몸무게 : $w "); 11 : 12 : if ($w>$a) 13 : echo (" 다이어트가 필요할지도 모르겠군요. "); 14 : else 15 : echo (" 다이어트가 필요하지 않군요. "); 16 : ?>
9 9 Section 01 운전면허 시험 합격 판정 02 【예제 3-6 】 pass2.php 1 : <? 2 : /* 운전면허 합격조건은 필기 70 점 이상, 실기 80 점 이상이어야 3 : 합니다. */ 5 : $pilgi = 75; 6 : $silgi = 86; 7 : 8 : echo " 필기점수 : $pilgi "; 9 : echo " 실기점수 : $silgi "; 10 : 11 : if ($pilgi >= 70 and $silgi>=80) 12 : echo " 합격입니다 "; 13 : else 14 : echo " 불합격입니다 "; 15 : ?>
10 Section 01 if ~ elseif ~ …. else ~ 문 예제 02 【예제 3-7 】 grade.php 1 : <? 2 : $s = 80; 3 : 4 : if ($s>=95 && $s "); 7 : elseif ($s>=90 && $s "); 10 : elseif ($s>=85 && $s "); 13 : elseif ($s>=80 && $s "); 16 : elseif ($s>=75 && $s "); 19 : elseif ($s>=70 && $s "); 22 : elseif ($s>=65 && $s "); 25 : elseif ($s>=60 && $s "); 28 : else echo("$s F "); 30 : ?>
11 Section 01 놀이 공원 입장료 계산 02 【예제 3-8 】 park_fee.php 1 : <? 2 : /* 어느 놀이 공원의 입장료 계산 4 : 5 : O 주간 요금 6 : - 대인 (18 세이상 ) : 20,000 원 7 : - 소인 (7~17 세 ) : 15,000 원 8 : - 유아 (7 세미만 ) : 0 원 9 : O 야간 요금 10 : - 대인 (18 세이상 ) : 15,000 원 11 : - 소인 (7~17 세 ) : 10,000 원 12 : - 유아 (7 세미만 ) : 0 원 13 : */ 15 : $age = 30; 16 : $day = " 주간 "; // 다음 장에 계속
12 Section 01 놀이 공원 입장료 계산 ( 계속 ) 02 【예제 3-8 】 park_fee.php 18 : if( $day == " 주간 " ) 19 : { if ( $age >= 18 ) $money = 20000; 22 : else if ( $age>=7 and $age<=17 ) $money = 15000; 24 : else $money = 0; } 27 : else 28 : { if ( $age >= 18) $money = 15000; 31 : else if ($age>=7 and $age<=17 ) $money = 10000; 33 : else $money = 0; } 37 : echo " 때 : $day "; 38 : echo " 나이 : $age "; 39 : echo " 입장료는 $money 입니다. "; 40 : ?>
13 Section 01 만 나이 계산 알고리즘 02 현재 날짜가 2005 년 3 월 10 일 이라고 가정 [ 경우 1] 출생월이 3 월 이전, 즉, 1,2 월인 경우 나이 = 현재 년도 - 출생 년도 [ 경우 2] 출생월이 3 월인 경우는 두 가지 경우로 다시 나뉜다. 1) 출생일이 10 일 이전, 즉 1~10 일인 경우 나이 = 현재 년도 - 출생 년도 2) 출생일이 10 일 이후, 즉 11~31 일인 경우 나이 = 현재 년도 - 출생 년도 - 1 [ 경우 3] 출생월이 3 월 이후, 즉, 4~12 월인 경우 나이 = 현재 년도 - 출생 년도 - 1
14 Section 01 만 나이 계산 하기 02 【예제 3-9 】 cal_age.php 1 : <? 5 : $now_year=2005; $now_month=3; $now_day=10; 9 : $birth_year=1983; $birth_month=3; $birth_day=30; 12 : 13 : if($birth_month < $now_month) 14 : $age= $now_year - $birth_year; 15 : else if($birth_month == $now_month) 16 : { 17 : if($birth_day <= $now_day) 18 : $age= $now_year - $birth_year; 19 : else 20 : $age= $now_year - $birth_year-1; 21 : } 22 : else 23 : $age= $now_year - $birth_year-1;
15 Section 01 만 나이 계산 하기 ( 계속 ) 02 【예제 3-9 】 cal_age.php 25 : echo " 오늘의 날짜 : $now_year 년 $now_month 월 $now_day 일 "; 26 : echo " "; 27 : echo " 당신은 $birth_year 년 $birth_month 월 $birth_day 일생 이므로 "; 28 : echo " 정확한 만나이는 $age 살 입니다. "; 29 : ?>
16 Section 01 switch 문 03 1 : switch ( 변수 ) 2 : { 3 : case 값 1 : 4 : 문장 1; 5 : break; 6 : case 값 2 : 7 : 문장 2; 8 : break; 9 : case 값 3 : 10 : 문장 3; 11 : break; 12 : default : 13 : 문장 4; 14 : } 변수의 값이 값 1 인 경우에 실행됨 변수의 값이 값 2 인 경우에 실행됨 변수의 값이 값 3 인 경우에 실행됨 나머지 모든 경우에 실행됨
17 Section 01 switch 문 간단한 예제 02 【예제 3-10 】 switch1.php 1 : <? 2 : $a = 2; 4 : switch( $a ) 5 : { 6 : case 0 : echo " 변수 \$a 가 0 이기 때문에 이 줄이 실행되었군요 ~~ "; 8 : break; 9 : case 1 : echo " 변수 \$a 가 1 이기 때문에 이 줄이 실행되었군요 ~~ "; 11 : break; 12 : case 2 : echo " 변수 \$a 가 2 이기 때문에 이 줄이 실행되었군요 ~~ "; 14 : break; 15 : case 3 : echo " 변수 \$a 가 3 이기 때문에 이 줄이 실행되었군요 ~~ "; 17 : break; 18 : default : echo " 변수 \$a 가 0, 1, 2, 3 에 해당되지 않는군요 ~~ "; 20 : } 21 : ?>
18 Section 01 [ 예제 3-10] 을 if 문으로 다시 작성 02 【예제 3-11 】 switch1_if.php 1 : <? 2 : $a = 2; 3 : 4 : if ( $a == 0 ) 5 : echo " 변수 \$a 가 0 이기 때문에 이 줄이 실행되었군요 ~~ "; 7 : elseif ( $a == 1) 8 : echo " 변수 \$a 가 1 이기 때문에 이 줄이 실행되었군요 ~~ "; 10 : elseif ( $a == 2) 11 : echo " 변수 \$a 가 2 이기 때문에 이 줄이 실행되었군요 ~~ "; 13 : elseif ( $a == 3) 14 : echo " 변수 \$a 가 3 이기 때문에 이 줄이 실행되었군요 ~~ "; 16 : else 17 : echo " 변수 \$a 가 0, 1, 2, 3 에 해당되지 않는군요 ~~ "; 18 : ?>
19 Section 01 while 문 간단한 예제 02 【예제 3-12 】 while_1_10.php 1 : <? 2 : $i = 1; // 초기값 설정 3 : 4 : while ($i <= 10) // 조건식이 거짓이 될 때까지 5 행 ~8 행 반복 실행 5 : { 6 : echo $i." "; 7 : $i++; // $i 의 값을 1 증가 시킴 8 : } 9 : ?>
20 Section 01 while 문 이용 1 에서 10 까지 합 구하기 02 【예제 3-13 】 while_sum_1_10.php 1 : <? 2 : $a=1; // 초기화 3 : $sum=0; // 누적합 초기화 4 : 5 : while($a<=10) // $a 가 10 이 될 때까지 7 행과 8 행 반복 6 : { 7 : $sum=$sum+$a; 8 : $a++; // $a 값 1 증가 9 : } 10 : 11 : echo("1 에서 10 까지 자연수의 합은 $sum 입니다. "); 12 : ?>
21 Section 01 for 문 간단한 예제 02 【예제 3-14 】 for_1_10.php 1 : <? 2 : for ($i=1; $i <= 10; $i++) // $i 가 1 부터 10 까지 10 번 수행 3 : { 4 : echo $i." "; 5 : } 6 : ?>
22 Section 01 for 문 이용 1 에서 10 까지 의 합계 02 【예제 3-15 】 for_sum_1_10.php 1 : <? 2 : 3 : $sum=0; 4 : 5 : for($a=1; $a<=10; $a++) // $a 가 1 에서 10 까지 7 행이 10 번 반복 6 : { 7 : $sum=$sum+$a; 8 : } 9 : 10 : echo("1 에서 10 까지 자연수의 합은 $sum 입니다. "); 11 : ?>
23 Section 01 이중 for 문 이용 구구단표 만들기 02 【예제 3-16 】 gugudan.php 1 : <? 2 : echo(" "); 3 : 4 : for($a=2; $a<=9; $a++) 5 : { 6 : for($b=1; $b<=9; $b++) 7 : { 8 : $c = $a * $b; 9 : echo(" $a x $b = $c "); 10 : } 11 : 12 : echo(" "); 13 : } 14 : ?>
24 Section 01 while 문과 do ~ while 문 비교 04 while 문 예제 do ~ while 문 예제 1 : <? 2 : $i = 100; 3 : 4 : while ($i <= 10) 5 : { 6 : echo $i." "; 7 : } 8 : ?> 1 : <? 2 : $i = 100; 3 : 4 : do 5 : { 6 : echo $i." "; 7 : } while ($i <= 10) 8 : ?> 조건식이 앞에 존재 조건식이 뒤에 존재