[PHP] 이중 for문으로 구구단 만들기

2023. 1. 5. 14:03PHP

php로 구구단을 만들어보자.

 

기본 문법 중에 하나인 구구단은 언어를 처음 배우는 사람한테는

어렵게 느껴질 수도 있다. 왜냐하면 기본적으로

for문을 2개를 사용하는 이중 for으로 구현하기 때문이다.

 

하지만 한 번 이해하고 몇 번 해보면 전혀 낯설지 않다.

 

html안에 php를 넣어 구구단을 만들어 보았다.

 

<table>을 사용하면서 구구단이 출력되었을 때

연습 겸 보기 쉽도록 만들어보았는데

<table> 내용도 간단하게 설명하면서

출력 값에 대해 설명해보겠다.

 

 

먼저 <h2>태그로 '구구단'이라는 소제목을 작성해주었다.

 

그리고 바로 <table>태그로 구구단을 만들어보았다.

 

<tr> 태그는 새로운 행을 만들어주는 역할을 한다.

그 안에 <td>태그들을 나열했는데

한<td>태그당 1열이라고 보면된다.

 

<td> 태그를 2단~9단까지 한 개씩 생성했으니

<tr>한 행에 8개의 열이 나란히 만들어진 것이다.

 

 


.

<table>을 사용하면 세로가 아닌 '행'인 가로로 나열이 되기 때문에

그에 맞춰서 이중 for문을 만들어 보았다.

 

먼저 첫번째 for문의 $i 는 1~9 범위 안에서 1씩 증가시키도록 하겠다.

 

그리고 그 안에 for문에 $j를 주고 2~9 범위 안에서

1씩 증가하도록 반복 실행해주겠다.

 

그러면 $i = 1일때 $j는 2부터 9까지 1씩 증가하면서

두 번째 for문 안에 코드를 실행시킨다는 것을 알 수 있다.

 

 

두 번째 for문안에 코드 내용은 이렇다

$j * $i 의 결과 값을 $result에 넣어준다.

하나의 열에 하나의 출력 값이 들어가도

<td>태그 안에 넣어주었다.

출력은 echo "{$j} x  {$i} = {$result}"; 형태로 출력을 해주겠다.

 

 

그럼 가장 처음에 출력되는 값은 "2 x 1 = 2"가 될 것이고, 이러한 형태로

아래와 같이  출력이 된 구구단이 형태를 볼 수가 있다.

 

* <table>의 선과 배치 정렬은 시각적으로 보기 쉽게 <style>을 사용해 boder와 text-align을 적용해주었다.

 

 

<  전체코드 >

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    h2{
      text-align: center;
    }
    table{
      border:1px solid black;
      border-collapse: collapse;
      margin:0 auto;
    }
    td{
      border: 1px solid black;
      padding: 5px;
      text-align: center;
    }
  </style>
</head>
<body>
  <h2>구구단</h2>
  <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
        for($i=1; $i<10; $i++){
          echo "<tr>";
          for($j=2; $j<10; $j++){
            $result = $j*$i;
            echo "<td>";
            echo "{$j}x{$i}={$result}";
            echo "</td>";
          }
          echo "</tr>";
        }
        ?>
    </tr>
  </table>
</body>
</html>