프로그래밍 언어/Perl

Perl 프로그래밍 제어 구조, 조건문과 반복문 - Perl #3

eco7T 2024. 11. 23. 10:17
반응형

Perl은 텍스트 처리나 간단한 스크립트 작성에 유용한 프로그래밍 언어로, 다양한 제어 구조를 통해 코드의 흐름을 제어할 수 있는 구조입니다. 이번 글에서는 Perl의 주요 제어 구조에 대해 살펴보고, 실행 가능한 예제를 다뤄보도록 하겠습니다.

Perl 프로그래밍 제어 구조
Perl 프로그래밍 제어 구조

 

Perl 프로그래밍 제어 구조

  조건문 (Conditional Statements)

조건문은 프로그램의 흐름을 특정 조건에 따라 나누는 역할을 합니다. 가장 많이 사용되는 조건문으로는 if, elsif, else가 있으며, 이는 특정 조건을 만족할 때만 코드 블록을 실행하게 해 줍니다.

 

반응형

 

 

if, elsif, else

if는 조건이 참일 때 실행되는 블록을 의미합니다. 만약 여러 조건을 평가해야 할 경우, elsifelse를 사용할 수 있습니다.

 

my $age = 20; if ($age < 18) { print "미성년자입니다.\n"; } elsif ($age < 65) { print "성인입니다.\n"; } else { print "노년층입니다.\n"; }
  • 위 코드는 나이에 따라 다른 메시지를 출력합니다.
  • if ($age < 18) 조건이 거짓일 때는 elsif ($age < 65)로 넘어가고, 둘 다 거짓일 경우 else가 실행됩니다.

 

 

unless

unlessif의 반대 개념으로, 조건이 거짓일 때 블록을 실행합니다. 부정적인 조건을 다룰 때 유용합니다.

 

my $is_raining = 0; unless ($is_raining) { print "오늘은 비가 오지 않습니다.\n"; }
  • 위 코드에서 is_raining 값이 0(거짓)이므로, unless 블록 안의 내용이 실행되어 "오늘은 비가 오지 않습니다."가 출력됩니다.

 

  반복문 (Loop Statements)

반복문은 특정 조건이 참인 동안 코드 블록을 반복적으로 실행하는 구조입니다. Perl에서는 for, foreach, while, until 등의 반복문을 사용할 수 있습니다.

 

for 루프

for 루프는 반복 횟수가 명확한 경우 사용됩니다. 초기값, 조건, 증감을 지정하여 반복을 제어합니다. 

 

for (my $i = 0; $i < 5; $i++) { print "i의 값은: $i\n"; }
  • 이 코드는 $i가 0부터 시작해 5보다 작을 때까지 증가하며 반복됩니다.
  • 총 5번 실행되며, 각 반복마다 i의 값은: 0, i의 값은: 1 등으로 출력됩니다.

 

 

foreach 루프

foreach는 리스트나 배열의 각 요소에 대해 반복하는 루프입니다. 배열의 모든 요소에 대해 동일한 작업을 할 때 매우 유용합니다. 

 

my @colors = ("red", "green", "blue"); foreach my $color (@colors) { print "색상: $color\n"; }
  • 위 코드는 배열 @colors의 각 요소(red, green, blue)를 반복하며 출력합니다.

 

while 루프

while 루프는 조건이 참인 동안 계속해서 반복하는 구조입니다. 조건이 거짓이 되면 반복을 종료합니다. 

 

my $count = 0; while ($count < 3) { print "현재 카운트: $count\n"; $count++; }
  • 이 코드는 $count가 3보다 작을 때까지 반복하며, 각 반복마다 값을 출력하고 $count를 1씩 증가시킵니다.

 

until 루프

untilwhile의 반대 개념으로, 조건이 거짓인 동안 반복합니다. 즉, 조건이 참이 되면 반복을 종료합니다.

 

my $temperature = 25; until ($temperature > 30) { print "현재 온도: $temperature\n"; $temperature++; }
  • 위 코드는 $temperature가 30을 초과할 때까지 온도를 1씩 증가시키며 값을 출력합니다.

 

 

  반복 제어 키워드

반복문에서는 last, next, redo와 같은 키워드를 사용하여 반복 흐름을 더욱 세밀하게 제어할 수 있습니다.

 

last

last는 반복문을 즉시 종료합니다. 자바나 C 언어의 break와 유사한 기능입니다. 

 

for (my $i = 0; $i < 10; $i++) { if ($i == 5) { last; } print "i의 값: $i\n"; }
  • 이 코드는 $i가 5에 도달하면 반복을 종료합니다.
  • 따라서 i의 값이 0부터 4까지만 출력됩니다.

 

next

next는 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다. 자바나 C 언어의 continue와 비슷한 개념입니다. 

 

for (my $i = 0; $i < 5; $i++) { if ($i == 2) { next; } print "i의 값: $i\n"; }

$i가 2일 때 출력하지 않고 건너뜁니다.

따라서 0, 1, 3, 4가 출력됩니다.

 

 

redo

redo는 조건을 재평가하지 않고 현재 반복을 다시 시작하게 합니다. 이 기능은 루프의 특정 부분을 반복하고자 할 때 유용합니다. 

 

my $i = 0; while ($i < 5) { $i++; if ($i == 3) { redo; } print "i의 값: $i\n"; }
  • $i가 3일 때 redo를 통해 다시 그 반복을 시작합니다.
  • $i가 증가하고 나서 바로 반복을 다시 시작하므로 $i = 3일 때는 그 값을 출력하지 않고 다음으로 넘어갑니다.
반응형