FizzBuzz

1〜10 までの数字を出力

lesson001.pl


for ($i = 1; $i <= 10; $i++)
{
print "$i\n";
}
実行結果

C:\>perl c:\study\perl\chapter002\lesson001.pl
1
2
3
4
5
6
7
8
9
10

1〜10 までの数字を出力

ただし、3の倍数は、"Fizz" を出力
lesson002.pl


foreach $i (1..10)
{
if ($i % 3 == 0)
{
print "Fizz\n";
}
else
{
print "$i\n";
}
}
実行結果

C:\>perl c:\study\perl\chapter002\lesson002.pl
1
2
Fizz
4
5
Fizz
7
8
Fizz
10

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
lesson003.pl


for (1..30)
{
if ($_ % 15 == 0)
{
print "FizzBuzz\n";
}
elsif ($_ % 3 == 0)
{
print "Fizz\n";
}
elsif ($_ % 5 == 0)
{
print "Buzz\n";
}
else
{
print "$_\n";
}
}
実行結果

C:\>perl c:\study\perl\chapter002\lesson003.pl
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
配列と関数を使用
lesson004.pl


for (1..30)
{
$array[$_ - 1] = $_;
}

foreach $i (@array)
{
print FizzBuzz($i), "\n";
}

sub FizzBuzz
{
my($i) = @_;

if ($i % 15 == 0)
{
return "FizzBuzz";
}
elsif ($i % 3 == 0)
{
return "Fizz";
}
elsif ($i % 5 == 0)
{
return "Buzz";
}
else
{
return $i;
}
}

実行結果

C:\>perl c:\study\perl\chapter002\lesson004.pl
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz

1〜30 までの数字を出力

ただし、3の倍数は、"Fizz" を、5の倍数は、"Buzz" を、
公倍数は、"FizzBuzz" を出力
map を使用
lesson005.pl


for (1..30)
{
$array[$_ - 1] = $_;
}

map {print FizzBuzz($_), "\n" } @array;

sub FizzBuzz
{
my($i) = @_;

if ($i % 15 == 0)
{
return "FizzBuzz";
}
elsif ($i % 3 == 0)
{
return "Fizz";
}
elsif ($i % 5 == 0)
{
return "Buzz";
}
else
{
return $i;
}
}

実行結果

C:\>perl c:\study\perl\chapter002\lesson005.pl
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz