PHP에서는 반복문과 문자열 출력 함수를 활용하여 다양한 패턴을 손쉽게 만들 수 있습니다. 이번 글에서는 별(*) 기호를 이용해 피라미드 모양의 패턴을 콘솔에 출력하는 방법을 예제와 함께 살펴보겠습니다.
피라미드 패턴 출력 예제
아래 코드는 사용자 정의 함수 print_pattern을 선언하고, 원하는 행(row) 개수만큼 피라미드 패턴을 생성하는 예제입니다.
<?php
function print_pattern($val)
{
$num = 2 * $val - 2;
for ($i = 0; $i < $val; $i++)
{
for ($j = 0; $j < $num; $j++)
echo " ";
$num = $num - 1;
for ($j = 0; $j <= $i; $j++ )
{
echo "* ";
}
echo "\n";
}
}
$val = 7;
print_pattern($val);
?>실행 결과
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
코드 동작 원리
이 프로그램의 핵심 로직은 다음과 같습니다.
1. 공백 계산: 변수 $num은 2 * $val - 2 공식으로 초기화됩니다. 이 값은 각 행 앞에 들어갈 공백의 개수를 결정하며, 행이 내려갈수록 1씩 감소하여 피라미드가 중앙을 기준으로 대칭을 이루도록 만듭니다.
2. 외부 반복문: 첫 번째 for 문은 전체 행의 개수($val)만큼 반복합니다. 즉, 7을 전달하면 7줄의 피라미드가 생성됩니다.
3. 공백 출력: 두 번째 for 문은 현재 행에 필요한 만큼 공백을 출력한 뒤 $num 값을 1 감소시킵니다.
4. 별표 출력: 세 번째 for 문은 현재 행 번호($i)보다 하나 많은 개수의 별표를 출력합니다. 그 결과 첫 번째 줄에는 별 1개, 두 번째 줄에는 별 2개가 찍히는 식으로 점진적으로 늘어납니다.
5. 줄바꿈 처리: 각 행이 완성되면 echo "\n";을 통해 줄바꿈을 출력하여 다음 행이 새로운 줄에서 시작되도록 합니다.
마지막으로 $val = 7;로 행 개수를 지정한 후 print_pattern($val);을 호출하면 위와 같은 피라미드 패턴이 화면에 출력됩니다. $val 값을 변경하면 원하는 크기의 피라미드를 자유롭게 만들 수 있습니다.