1. While문과 Do..While문

while (조건) {
	실행문;
}

- 조건이 참인 동안 실행문이 반복되어 실행된다.
- 반복을 벗어나기 위해서는 실행 문내에 조건을 변경하거나 break문이 필요하다.
- 조건에 변화가 없으면 무한 반복된다.
- 조건은 실행문이 반복될 때마다 반복해서 실행된다.

 

$a = 1; 		// 초기식
while ($a <= 10) { 	// 조건
echo(" {$a}<br> "); 	// 명령문
$a++; 			// 증감식
}

While뿐 아니라 do..while문이나 for문에서도 반복문의 네 가지 요소(초기식, 조건, 증감식, 명령문)는 항상 동
일하다.

 

2. For문 

for (초기식; 조건; 증감식) {
	실행문;
}

- 일반적으로 사용

- 조건이 참인 동안 실행문을 반복 실행한다.
- 초기식은 맨 처음 한 번만 실행된다.
- for문은 반복 횟수를 구체적으로 확인 가능함으로 반복문 중에 가장 가독성이 좋다.

 

잘못된 값 입력 시 사용하는 코드

if($num < 1 ) {
      echo("
           <script>
           window.alert('1보다 큰값을 입력하세요');
           history.go(-1);
           </script>
          ");
      exit;
   }

 

3. Continue 문

- Continue문은 반복문 내에서 쓰이는 제어문

- 이런 제어문으로는 앞에서 살펴본 break문이 있는데, break문은 반복문을 완전히 빠져나오는 기능을 수행하는 반면   continue문은 현재 수행중인 반복을 종료하고 다음 반복으로 건너뛰는 기능을 담당

<?
for($a = 1; $a <= 10; $a++) {
if($a%2==0) continue;
echo(" {$a}<br> ");
}
?>

<?
  $a = 1;
  while ($a <=10) {
	if($a%2==0){
	$a++;
	continue;
	}
	echo(" {$a}<br> ");
	$a++;
  }
  show_source(__FILE__);
?>

 

while, for문 실습

예제 3-1. 0 보다 큰 값을 입력받아 1에서 입력 값까지의 합을 출력한다.

3-1.html

<html>
<head>
<title>3-1.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-1.php">
	1보다 큰 값을 입력하세요 : <input type="text" name="num"><br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>

 

while 문 3-1.php

<?
   $num = $_POST["num"];

   $sum = 0; // 누적 변수, 1..$num 까지 값을 누적한다.
   $a = 1 ; // 초기식
   if($num > 1) {
       while($a <= $num) { // 조건, $a가 $num보다 커지면 반복을 종료한다.
           $sum = $sum + $a;
           echo("\$a: {$a}, \$sum: {$sum}<br>");
           $a++; // 증감식
        }
        echo("<hr>");
        echo("1에서 {$num}까지의 합은 {$sum}입니다.");
     }
     else echo("입력 값이 올바르지 않습니다.");
     echo("<hr>");
     show_source(__FILE__);
?>

실행결과

 

예제 3-1 for문

3-1f.php 

<?
   $num = $_POST["num"];

   if($num < 1 ) {
      echo("
           <script>
           window.alert('1보다 큰값을 입력하세요');
           history.go(-1);
           </script>
          ");
      exit;
   }
   $sum = 0;
   for($a = 1; $a <= $num; $a++){
   $sum = $sum + $a;
   echo("\$a: {$a}, \$sum: {$sum}<br>");
   }
   echo("<hr>");
   echo("1에서 {$num}까지의 합은 {$sum}입니다.");
   echo("<hr>");
   show_source(__FILE__);
?>

실행결과

 

예제 3-2. 2~9 까지의 숫자를 입력받아 구구단을 출력하는 프로그램을 작성한다.

3-2f.html

<html>
<head>
<title>3-2f.html 구구단 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-2f.php">
	출력하고자 하는 단을 입력 하세요 : <input type="text" name="gu"><br>
	<input type="submit" name="확인" value="확인">
	<input type="reset" name="취소" value="취소"><br>
</form>
</html>

 

3-2f.php

<?
	$gu = $_POST["gu"];
	if(!($gu >= 2 && $gu <= 9)) {
		echo("
		  <script>
		  window.alert('2에서 9사이에 값을 입력하세요');
		  history.go(-1);
		  </script>
		  ");
		  exit;
	}
	for($i = 1;$i <= 9;$i++){
		$s = $i * $gu;
		echo("{$gu}x{$i}={$s}<br>");
	}
?>

 

실습

실습 1. 0보다 큰 정수를 입력받아 입력받은 정수까지 홀수의 합과 짝수의 합을 각각 출력하는 프로그램을 작성한다.

* while문과 for문을 둘 다 사용해 작성 (두 번 출력하기)

3-ex01.html

<html>
<head>
<title>3-ex01.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="3-ex01.php">
	0보다 큰 값을 입력하세요 : <input type="text" name="num"><br>
		<input type="submit" name="확인" value="확인">
		<input type="reset" name="취소" value="취소"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>

 

3-ex01.php

<?
   $num = $_POST["num"];

   if($num < 0 ) {
      echo("
           <script>
           window.alert('0보다 큰값을 입력하세요');
           history.go(-1);
           </script>
          ");
      exit;
   }
   $sum_odd = 0;
   $sum_even = 0;
   $i=1;
   while($i <= $num) {
         if($i % 2 == 0){
            $sum_even += $i;
         }
         else {
            $sum_odd += $i;
         }
         echo("\$i: {$i}, \$sum_odd: {$sum_odd}, \$sum_even: {$sum_even}<br>");
         $i++;
   }
   echo("<hr>");
   echo("while문<br>");
   echo("0에서 {$num}까지 홀수합: {$sum_odd}, 짝수합: {$sum_even}");
   echo("<hr>");

   $sum_odd = 0;
   $sum_even = 0;
   for($a = 1; $a <= $num; $a++){
    if($a % 2 == 0){
      $sum_even += $a;
    }
    else{
      $sum_odd += $a;
    }
    echo("\$i: {$i}, \$sum_odd: {$sum_odd}, \$sum_even: {$sum_even}<br>");
   }
   echo("<hr>");
   echo("for문<br>");
   echo("0에서 {$num}까지 홀수합: {$sum_odd}, 짝수합: {$sum_even}");
   echo("<hr>");
   show_source(__FILE__);
?>

실행결과
실행결과 show_source(__FILE__)

 

실습2. 값을 입력받아 입력된 값이 소수인지 확인하는 프로그램을 작성한다.
* 소수란 : 약수가 1과 자신밖에 없는 수
* 소수 판별 방법
- 제수의 값을 2부터 시작해서 1씩 증가 하면서 피제수를 나눠서 나머지가 0이 될 때까지 수행한다.
- 나눠서 떨어졌을 때 제수와 피제수가 같으면 피제수는 소수이다.

 

pri.html

<html>
<head>
<title>pri.html 입력 폼파일</title>
<meta http-equiv="content-type" content="text/html; charset=euc-kr">
</head>
<form method="post" action="pri.php">
	3이상인 값을 입력하세요  <br>
  <input type="text" name="num">
	<input type="submit" name="확인" value="확인"><br>
</form>
<hr>
<? show_source(__FILE__); ?>
</html>

pri.php

<?
  $num = $_POST["num"];

  if($num < 3 ) {
        echo("
             <script>
             window.alert('3이상인 값을 입력하세요');
             history.go(-1);
             </script>
            ");
        exit;
     }

  for($i = 2; $num % $i != 0; $i++){
  }

  if($num == $i)
    echo("{$num}: 소수");
  else
    echo("{$num}: 합성수");
?>
<hr><p>
<? show_source(__FILE__); ?>

 

'PHP 공부 기록' 카테고리의 다른 글

(수정중) PHP 5 - 배열  (0) 2021.11.23
PHP 4 - 폼(Form)  (0) 2021.11.19
PHP 2 - 조건문 (IF, SWITCH)  (0) 2021.10.29
PHP 1 - 변수와 연산자  (0) 2021.10.22
PHP 0 - 프로그램 사용해보기  (0) 2021.10.22

+ Recent posts