PHP - Do...While Loop: A Beginner's Guide

안녕하세요, кодинг에 도전하는 여러분! 오늘 우리는 PHP의 루프 중에서도 do...while 루프의 흥미로운 세계로 들어가보겠습니다. 여러분의 친절한 이웃 컴퓨터 선생님으로서, 저는 많은 예제와 설명을 통해 이 개념을 안내해 드리겠습니다. 그러니 가상의 메모 pad를 집고, 루프를 돌리러 가보겠습니다!

PHP - Do…While Loop

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);
?>

여기서 무엇이 일어나고 있나요?

  1. $i 변수를 1로 초기화합니다.
  2. 루프는 do로 시작하고 현재 $i의 값을 출력합니다.
  3. $i를 1 증가시킵니다.
  4. 닫는 브레이스 후에 while 조건이 와서 $i가 5 이하인지 확인합니다.
  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!";
?>

이 예제에서:

  1. 비밀 번호를 설정합니다 (7입니다).
  2. 루프는 사용자에게 숫자를 추측하게 합니다.
  3. 추측이 너무 낮거나 너무 높은지에 대한 피드백을 제공합니다.
  4. 정확한 숫자를 추측할 때까지 루프가 계속됩니다.

이는 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);
?>

여기서 무엇이 일어나고 있나요?

  1. "sample.txt" 파일을 읽기 모드로 엽니다.
  2. 루프는 파일에서 한 줄을 읽습니다.
  3. 줄이 거짓이 아닌 경우(즉, 파일의 끝이 아닌 경우) 출력합니다.
  4. 줄이 거짓이 아닌 한 루프가 계속됩니다.
  5. 파일이 끝에 도달하면 파일을 닫습니다.

이 예제는 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! ?";
?>

이 가운데 무엇이 일어나고 있나요?

  1. $countdown을 5로 설정합니다.
  2. 루프는 현재 카운트다운 값을 출력합니다.
  3. $countdown을 1 감소시킵니다.
  4. $countdown이 0보다 큰 한 루프가 계속됩니다.
  5. 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);
?>

여기서 무엇이 일어나고 있나요?

  1. "Hello, World!" 문자열을 설정합니다.
  2. 문자열의 마지막 인덱스를 구합니다 (길이 - 1).
  3. 루프는 끝에서부터 각 문자를 출력합니다.
  4. 각 이터레이션에서 인덱스를 1 감소시킵니다.
  5. 인덱스가 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);
?>

이를 어떻게 설명할까요?

  1. 외부 루프는 행의 수를 제어합니다 (5입니다).
  2. 내부 루프는 각 행에 별을 인쇄합니다.
  3. 각 행의 별 수는 행 번호와 동일합니다.
  4. 각 행 후에는 <br>를 사용하여 다음 줄로 이동합니다.

출력:

*
* *
* * *
* * * *
* * * * *

Methods Table (메서드 표)

이제 우리 예제에서 사용한 메서드를 요약하는 표를 보여드리겠습니다:

메서드 설명
echo 하나 이상의 문자열을 출력합니다
readline 사용자 입력에서 한 줄을 읽습니다
fopen 파일이나 URL을 엽니다
fgets 파일 포인터에서 한 줄을 가져옵니다
fclose 열린 파일 포인터를 닫습니다
strlen 문자열의 길이를 반환합니다

그럼 여러분이 PHP의 do...while 루프의 내용을 깊이 이해하게 되었습니다. 연습이 완벽을 만드는 것을 기억하세요, 그러니 계속 코딩하고 이 루프를 실험해 보세요. 언제나 코드 도전 과제를 돌파하겠죠! 행복한 코딩! ??

Credits: Image by storyset