PHP - Do...While Loop: A Beginner's Guide
안녕하세요, кодинг에 도전하는 여러분! 오늘 우리는 PHP의 루프 중에서도 do...while 루프의 흥미로운 세계로 들어가보겠습니다. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 많은 예제와 설명을 통해 이 개념을 안내해 드리겠습니다. 그러니 가상의 메모 pad를 집고, 루프를 돌리러 가보겠습니다!
What is a Do...While Loop? (무엇이 do...while 루프인가요?)
예제로 들어가기 전에, do...while 루프가 무엇인지 이해해 보겠습니다. 여러분이 주사위를 굴려 6이 나오까지 계속 굴리는 게임을 상상해 보세요. 적어도 한 번은 굴리시죠? 바로 do...while 루프가 그렇게 작동합니다!
do...while 루프는 조건이 참인지 확인하기 전에 코드 블록을 적어도 한 번 실행합니다. 조건이 참이면, 그 블록을 반복적으로 실행하直到 조건이 거짓이 될 때까지 계속합니다.
이제 문법을 보겠습니다:
do {
// 실행할 코드
} while (조건);
Example 1: Basic Do...While Loop (기본 do...while 루프 예제)
간단한 예제로 시작해 보겠습니다:
<?php
$i = 1;
do {
echo "The number is: $i <br>";
$i++;
} while ($i <= 5);
?>
여기서 무엇이 일어나고 있나요?
-
$i
변수를 1로 초기화합니다. - 루프는
do
로 시작하고 현재$i
의 값을 출력합니다. -
$i
를 1 증가시킵니다. - 닫는 브레이스 후에
while
조건이 와서$i
가 5 이하인지 확인합니다. - 조건이 참이면 루프가 계속하고, 거짓이면 멈춥니다.
출력:
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
Example 2: Do...While Loop with User Input (사용자 입력을 사용한 do...while 루프 예제)
여러분의 경험을 더욱 흥미롭게 만들기 위해 간단한 추측 게임을 만들어 보겠습니다:
<?php
$secretNumber = 7;
do {
$guess = (int)readline("Guess the number (between 1 and 10): ");
if ($guess < $secretNumber) {
echo "Too low! Try again.\n";
} elseif ($guess > $secretNumber) {
echo "Too high! Try again.\n";
}
} while ($guess != $secretNumber);
echo "Congratulations! You guessed it right!";
?>
이 예제에서:
- 비밀 번호를 설정합니다 (7입니다).
- 루프는 사용자에게 숫자를 추측하게 합니다.
- 추측이 너무 낮거나 너무 높은지에 대한 피드백을 제공합니다.
- 정확한 숫자를 추측할 때까지 루프가 계속됩니다.
이는 do...while 루프가 입력 검증과 간단한 게임을 만드는 데 어떻게 사용될 수 있는지 보여줍니다!
Example 3: File Reading with Do...While Loop (do...while 루프를 사용한 파일 읽기 예제)
여러분은 파일을 읽는 더 실용적인 예제를 탐구해 보겠습니다:
<?php
$file = fopen("sample.txt", "r");
do {
$line = fgets($file);
if ($line !== false) {
echo $line . "<br>";
}
} while ($line !== false);
fclose($file);
?>
여기서 무엇이 일어나고 있나요?
- "sample.txt" 파일을 읽기 모드로 엽니다.
- 루프는 파일에서 한 줄을 읽습니다.
- 줄이 거짓이 아닌 경우(즉, 파일의 끝이 아닌 경우) 출력합니다.
- 줄이 거짓이 아닌 한 루프가 계속됩니다.
- 파일이 끝에 도달하면 파일을 닫습니다.
이 예제는 do...while 루프가 파일 연산에 어떻게 유용할 수 있는지 보여줍니다!
Decrementing a "do...while" Loop (do...while 루프로 감소시키기)
이제 do...while 루프를 사용하여 역수를 세보겠습니다:
<?php
$countdown = 5;
do {
echo "T-minus $countdown...<br>";
$countdown--;
} while ($countdown > 0);
echo "Blast off! ?";
?>
이 가운데 무엇이 일어나고 있나요?
-
$countdown
을 5로 설정합니다. - 루프는 현재 카운트다운 값을 출력합니다.
-
$countdown
을 1 감소시킵니다. -
$countdown
이 0보다 큰 한 루프가 계속됩니다. - 0에 도달하면 "Blast off!"를 출력합니다.
출력:
T-minus 5...
T-minus 4...
T-minus 3...
T-minus 2...
T-minus 1...
Blast off! ?
Traverse a String in Reverse Order (문자열을 역방향으로 탐색하기)
이제 문자열을 역방향으로 탐색하는 창의적인 방법을 보겠습니다:
<?php
$str = "Hello, World!";
$length = strlen($str) - 1;
do {
echo $str[$length];
$length--;
} while ($length >= 0);
?>
여기서 무엇이 일어나고 있나요?
- "Hello, World!" 문자열을 설정합니다.
- 문자열의 마지막 인덱스를 구합니다 (길이 - 1).
- 루프는 끝에서부터 각 문자를 출력합니다.
- 각 이터레이션에서 인덱스를 1 감소시킵니다.
- 인덱스가 0 이상인 한 루프가 계속됩니다.
출력:
!dlroW ,olleH
Nested "do...while" Loops (중첩된 do...while 루프)
마지막으로, 재미있는 패턴을 만들기 위해 중첩된 do...while 루프를 탐구해 보겠습니다:
<?php
$i = 1;
do {
$j = 1;
do {
echo "* ";
$j++;
} while ($j <= $i);
echo "<br>";
$i++;
} while ($i <= 5);
?>
이를 어떻게 설명할까요?
- 외부 루프는 행의 수를 제어합니다 (5입니다).
- 내부 루프는 각 행에 별을 인쇄합니다.
- 각 행의 별 수는 행 번호와 동일합니다.
- 각 행 후에는
<br>
를 사용하여 다음 줄로 이동합니다.
출력:
*
* *
* * *
* * * *
* * * * *
Methods Table (메서드 표)
이제 우리 예제에서 사용한 메서드를 요약하는 표를 보여드리겠습니다:
메서드 | 설명 |
---|---|
echo | 하나 이상의 문자열을 출력합니다 |
readline | 사용자 입력에서 한 줄을 읽습니다 |
fopen | 파일이나 URL을 엽니다 |
fgets | 파일 포인터에서 한 줄을 가져옵니다 |
fclose | 열린 파일 포인터를 닫습니다 |
strlen | 문자열의 길이를 반환합니다 |
그럼 여러분이 PHP의 do...while 루프의 내용을 깊이 이해하게 되었습니다. 연습이 완벽을 만드는 것을 기억하세요, 그러니 계속 코딩하고 이 루프를 실험해 보세요. 언제나 코드 도전 과제를 돌파하겠죠! 행복한 코딩! ??
Credits: Image by storyset