본문 바로가기

스터디/코딩

[ 자율 스터디 ] PHP 반복문

반복문이란?

- 프로그램 내에서 똑같은 명령을 조건만큼 반복하여 수행시키는 문장

- 반복문을 이루는 요소는 초깃값, 조건식, 변수 값의 증가/감소 등이다.

- while문, for문, do~while문 형태가 있다.

 

 

while 문

- 조건식이 참인 동안 문장을 반복 수행하고 while문을 빠져나간다. while문의 세 가지 필수 요소는 초깃값, 조건식, 변수 값의 변화(증가 or 감소)이다.

변수_값 초기화
while (조건식)
{
	<문장들>
    변수_값_증가(or 감소)
}

 

<?php
	echo "while문을 실습해보자!!<br><br>";
	$sum = 0;
	$i = 1;	

	while ($i <= 10)
	{
		$sum = $sum + $i;
		echo "\$i : $i -> 합계 : $sum<br>";  
		$i++;  
	}
?>

while문을 사용한 1부터 10까지의 합 프로그램

 

<?php
	echo "while문을 실습해보자!!_2<br><br>";
	$i = 1;
	$count = 0;
	while ($i<=100)
	{
		if ($i % 3 != 0)
		{
			echo "$i ";
			$count++;
		}
		if ($count % 10 == 0)
		{
			echo "<br>";
		}
		$i++;
	}
?>

while문으로 100~300 사이의 3의 배수가 아닌 수 출력 프로그램

 

<?php
	echo "while문으로 인치/센티미터 변환<br><br>";
	$inch = 10;
	echo "<table border='1'>";
    echo "<tr>";
    echo "<th width='100'>인치</th><th width='100'>센티미티</th>";
    echo "</tr>";
        while ($inch <= 100)
        {
           $cm = $inch * 2.54;
           echo "<tr align='center'><td>$inch</td><td>$cm</td></tr>";

           $inch = $inch + 10;
    }
    echo "</table>";
?>

while문을 사용한 인치/센티미터 변환 프로그램

 

<h3>2단 구구단 표 만들기</h3>
<table border="1" width="100">
<?php
	echo "while문으로 구구단을 만들어보자!!<br><br>";
  $a = 2;
        $b = 1;                  
  while ($b <= 9)           
    {
      $c = $a * $b;
      echo "<tr><td align='center'>$a x $b = $c</td></tr>";     
      $b++;       
  }
?>
</table>

 

while로 만든 2단 구구단

 

 

for 문

- for문은 while문의 축약 형태이며, for문의 괄호 안에는 다음과 같은 사항이 포함된다.

  * 변수의 초깃값 설정

  * 반복 수행 중지를 위한 조건식

  * for루프 내에서 사용되는 변수 값의 증가 or 감소

 

for (초깃값; 조건식; 증가_감소;)
{
	<문장들>
}

 

<?php
	echo "for문을 실습해보자!!<br><br>";
    $sum=0;
   
    for($a=1; $a<=10; $a++)
    {
            $sum=$sum+$a;     
    }
 
    echo("1에서 10까지 정수의 합은 $sum 입니다.<br>");
?>

for문을 사용한 1 ~ 10까지의 합 프로그램

 

<?php
	echo "for문을 실습해보자!!_2<br><br>";
    $count = 0;
    for ($i = 500; $i <= 700; $i++)
    {
      if($i %4 != 0)
    	{
        	echo $i." ";
       		$count++;
	  		$ok = true;
		}

       if ($count != 0 && $count % 10 == 0 && $ok == true)
        {
          	echo "<br>";
	    	$ok = false;
        }
    }
?>

for문으로 500~700 사이의 4의 배수를 제외한 수들의 출력 프로그램

 

<h3>섭씨 -> 화씨 온도 변환</h3>
<table border="1"width="300">   
<tr align="center"><td width"150">섭씨</td><td>화씨</td></tr>
<?php
	echo "for문을 사용하여 섭씨/화씨 온도 변환<br><br>";
    for ($c=-15; $c<=35; $c=$c+5)
    {
        $f = $c * 9 / 5 + 32;
        echo "<tr align='center'><td>$c</td><td>$f</td></tr>";
    }
?>
</table>

for문을 사용한 섭씨/화씨 온도 변화

 

 

이중 for 문

- for문의 반복 루프 내에 for문을 사용하는 것

for (초깃값; 조건식; 증가_감소;)
{
	for (초깃값; 조건식; 증가_감소;)
		{
			<문장들>
		}
}

 

<?php
	echo "이중 for문을 사용하여 구구단 출력 1 <br><br>";
    echo "------------------------------------------ <br>";

   for($a=2; $a<=9; $a++)
   {
      for($b=1; $b<=9; $b++)
      {
         $c = $a * $b;
         echo("$a x $b = $c <br>");
      }

    echo "------------------------------------------ <br>";
   }
?>

이중 for문을 사용한 구구단 출력 프로그램 (1)

 

<style>
table {border-collapse:collapse;  width:600px; }
td { border: solid 1px gray; text-align: center; padding:5px; }
</style>
<h3>- 구구단 표</h3>
<table>
<tr>
<td>2단</td>
<td>3단</td>
<td>4단</td>
<td>5단</td>
<td>6단</td>
<td>7단</td>
<td>8단</td>
<td>9단</td>
</tr>
<?php
	echo "이중 for문을 사용하여 구구단 출력 2 <br><br>";
	for($b=1; $b<=9; $b++)
	{
	    echo "<tr>";

	    for($a=2; $a<=9; $a++)
	    {
		$c = $a * $b;

		echo "<td>{$a}x{$b}=$c</td>";
	    }
        
            echo "</tr>";
 	}
?>
</table>

이중 for문을 사용한 구구단 프로그램 (2)

 

<?php
	echo "이중 for문을 사용하여 별표 출력 1<br><br>";
   for ($a=1; $a<=10; $a++)
   {
      	for ($b=1; $b<=$a; $b++)
      	{
       	    echo "* ";
      	}
      	echo "<br>";
   }
?>

이중 for문을 사용한 별표 출력 프로그램 (1)

 

<?php
	echo "이중 for문을 사용하여 별표 출력 2<br><br>";
   for ($a=1; $a<=10; $a++)
   {
      	for ($b=9; $b>=$a; $b--)
           	echo "&nbsp";

      	for ($c=1; $c<=$a; $c++)
           	echo "*";

      	echo "<br>";
    }
?>

이중 for문을 사용한 별표 출력 프로그램 (2)

 

 

do ~ while 문

- do ~ while문은 while문과 거의 동일하지만 while (조건식)이 문장의 마지막에 온다는 것이 차이점이다. 이는 루프 내의 <문장들>이 최소한 한 번 이상 수행된다는 것을 의미한다.

do
{
	<문장들>
} while (조건식)

 

<?php
	echo "do ~ while문을 실습해보자!! <br><br>";
	$i = 1;
	$sum = 0;

	do
   	{
      	$sum = $sum + $i;
      	$i++;
    } while($i <= 10);

    echo "합계 : $sum";
?>

do~while문으로 1~10까지의 합 프로그램

 

<?php
	echo "do ~ while문을 실습해보자!!_2 <br><br>";
	$i = 10;

	do
   	{
      	print $i;
    } while($i<=1);
?>

do ~ while 문으로 10 출력 프로그램

 

 

[ 연습 문제 ]

 

- 1번

<?php
	echo "연습 문제 1번<br><br>";
	$num = 1;

	while($num<=1000) 
	{
		if($num%2==0)
			echo "$num ";
			$num++;
	}
?>

while문을 사용하여 1~1000 사이의 짝수 출력 프로그램

 

- 2번

<?php
	echo "연습 문제 2번<br><br>";
	$count = 0;

	for($num=100; $num<=500; $num++) 
	{ 
		if ($num%2 == 0) 
		{
			echo "$num ";
			$count++;
		}
		if ($count%2 == 0)
		{
			echo "<br>";
		}
	}
?>

for 문을 사용해 100~500 사이의 짝수 출력 프로그램 (1)
for 문을 사용해 100~500 사이의 짝수 출력 프로그램 (2)

 

- 3번

<?php
	echo "연습 문제 3번<br><br>";
	$num = 300;
	$sum = 0;

	while ($num <= 3000) 
	{
		if ($num%2 == 1)
			$sum = $sum + $num; 
		$num++;
	}
	echo "300~3000 홀수의 합 : $sum";
?>

while문을 사용하여 300~3000 사이의 홀수들의 합 프로그램

 

- 4번

<?php
	echo "연습 문제 4번<br><br>";
	$sum = 0;

	for($num=100; $num<=900; $num++)
	{ 
		if($num%3 !=0)
		{ 
			$sum = $sum + $num; 
			echo "{$num}까지의 합 : $sum<br>";
		}
	}
?>

for문을 사용한 100~900 중 3의 배수를 제외한 수들의 합 (1)
for문을 사용한 100~900 중 3의 배수를 제외한 수들의 합 (2)

 

- 5번

<?php
	echo "연습 문제 5번<br><br>";
	$factorial = 1;
	for($num=1; $num<=10; $num++) 
	{
		$factorial *= $num;
		echo "{$num}! = $factorial<br>";
	}
?>

for문을 사용한 10!

 

- 6번

<?php
	echo "연습 문제 6번<br><br>";
	$count = 0;

	for($num=1; $num<=500; $num++)
	{
		if($num%5 ==0) 
		{
			echo "$num ";
			$count++;
			if($count%10 == 0) 
			echo "<br>";
		}
	}
?>

1~500 사이의 5의 배수 출력 프로그램

 

- 7번

<?php
	echo "연습 문제 7번<br><br>";
	echo "----------------------------<br>";
	echo "야드 미터<br>";
	echo "----------------------------<br>";

	for($yard = 10; $yard <= 300; $yard=$yard+10) 
	{
		$meter = $yard * 0.9144;
		echo "$yard $meter<br>";
	}
	echo "----------------------------<br>";	
?>

야드를 미터로 변환하는 프로그램 : 10~300야드 10씩 증가

 

- 8번

<?php
	echo "연습 문제 8번<br><br>";
	echo "<table border=1>";
	echo "<tr align=center><td width=150>야드</td><td width=150>미터</td></tr>"; 

	for($yard=10; $yard<=300; $yard=$yard+10) 
	{
		$meter = $yard * 0.9144;
		echo "<tr align=center>";
		echo "<td>$yard</td><td>$meter</td>";
		echo "</tr>";
	}	
	echo "</table>";
?>

HTML <table> 태그를 이용하며 7번 문제를 출력

 

- 9번

<?php
	echo "연습 문제 9번<br><br>";
	echo "-------------------------<br>";
	echo "평 제곱미터<br>";
	echo "-------------------------<br>";

	for($meter = 10; $meter <= 200; $meter=$meter+10) 
	{
		$flat = $meter * 0.3025;
		echo "$meter $flat<br>";
	}
	echo "-------------------------<br>";	
?>

7번 문제를 변형시켜 제곱미터를 평으로 변환하는 프로그램 : 10 ~ 200 제곱미터 10씩 증가

'스터디 > 코딩' 카테고리의 다른 글

[ 자율 스터디 ] PHP 함수  (0) 2023.01.04
[ 자율 스터디 ] PHP 배열  (0) 2023.01.04
[ 자율 스터디 ] PHP 조건문  (0) 2023.01.03
[ 자율 스터디 ] PHP 기초 문법  (0) 2023.01.02
[ 자율 스터디 ] PHP의 기본 지식  (0) 2023.01.02