職案人

求職・歴史・仏教などについて掲載するつもりだが、自分の思いつきが多いブログだよ。適当に付き合って下さい。

perlの繰り返し処理

2018年01月09日 | perl
perlの繰り返し処理


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール

1)while文
書式
while (条件式){
実行する処理1;
実行する処理2;
}

サンプル「while.pl」
use strict;
use warnings;

my $count;

$count = 0;
while ($count < 2){
print "count = $count \n";
$count ++;
}
print "以上です";

結果
count = 0
count = 1
以上です

2)until文
while文が条件式が真の間ブロック内の処理を繰り返すのに対して、until文は条件式が偽の間ブロック内の処理を繰り返すもの

書式
until (条件式){
実行する処理1;
実行する処理2;
}

サンプル「until.pl」
use strict;
use warnings;
my $count;

$count = 0;
until ($count >= 2){
print "count = $count \n";
$count ++;
}

print "以上です";

結果
count = 0
count = 1
以上です

3)for文
指定した回数だけ繰り返す場合
書式
for (初期化; 条件式; インクリメント){
実行する処理1;
実行する処理2;
}
サンプル「for.pl」
use strict;
use warnings;
for (my $count = 0; $count < 5; $count++){
print "count = $count \n";
}

結果
count = 0
count = 1
count = 2
count = 3
count = 4

4)foreach文
foreachは値の集合であるリストを指定すると、リストに含まれる値の数だけ順に繰り返しを行う
書式
foreach 変数 (リスト){
実行する処理1;
実行する処理2;
}
サンプル「foreach.pl」
use strict;
use warnings;
my @fruit = ("りんご", "メロン", "イチゴ");

foreach my $name (@fruit){
print "$name\n";
}
または、
my @fruit = ("りんご", "メロン", "イチゴ");

for my $name (@fruit){
print "$name\n";
}

結果
りんご
メロン
イチゴ

5)last演算子
繰り返し処理が行われている時に強制的に繰り返し処理を終了さあせる
サンプル「last.pl」
use strict;
use warnings;
my $count = 1;

while (1){
print "$count\n";
$count++;

if ($count > 5){
last;←last演算子
}
}
print "終了\n";

結果
1
2
3
4
5
終了

6)next演算子
next演算子はその時実行している繰り返しを最後の位置までスキップさせて次の繰り返しに進みます
サンプル「next.pl」
use strict;
use warnings;
my $count = 0;

while ($count <= 5){
$count++;

if ($count == 2){←2だけ飛ばす
next;
}

print "$count\n";

#next演算子が実行されるとこの位置に進む
}
print "終了\n";
結果
1
3
4
5
6
終了

7)redo演算子
redo演算子はその時の繰り返しを先頭の位置まで戻し改めて繰り返し処理を実行する
サンプル「next.pl」
use strict;
use warnings;
my $count = 0;

while ($count <= 5){
#redo演算子が実行されるとこの位置に進む、この時、$count に1が入る

$count++;

if ($count == 2){
redo;
}

print "$count\n";
}
print "終了\n";
結果
1
3
4
5
6
終了

8)繰り返し処理にラベルを付ける
書式
ラベル: while (条件式){
# 何らかの処理
}

#ラベル
CALC: for (my $i = 1; $i < 10; $i++){
for (my $j = 1; $j < 10; $j++){
my $calc = $i * $j;
print "$i * $j = $calc\n";

last CALC if $calc > 10;
}
}
print "終了\n";
結果
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
1 * 4 = 4
1 * 5 = 5
1 * 6 = 6
1 * 7 = 7
1 * 8 = 8
1 * 9 = 9
2 * 1 = 2
2 * 2 = 4
2 * 3 = 6
2 * 4 = 8
2 * 5 = 10
2 * 6 = 12
終了

8)式修飾子
繰り返し処理においても実行する処理が1つの場合は式修飾子が使用出来る
書式
真の時に実行する処理 while 条件式;
真の時に実行する処理 until 条件式;
実行する処理 foreach 条件式;

サンプルプログラム
my @fruit = ("りんご", "メロン", "イチゴ");
print "$_¥n" foreach @fruit;

または
my @fruit = ("りんご", "メロン", "イチゴ");

foreach (@fruit){
print "$_¥n";
}

結果
りんご
メロン
イチゴ

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

perlのif文について

2018年01月05日 | perl
perlのif文について


【環境条件】
Eclipse 4.4(ルナ)
XAMPP 1.8.3 
Perlは既にXAMPPにインストール

条件分岐のIF文

■if文の構造

if (条件式){
条件式が真の時に実行する処理1;
条件式が真の時に実行する処理2;
}

サンプルプログラム「if.pl」←Eclipse 4.4用
use strict;
use warnings;

my $seiseki;

$seiseki = 75;
print "得点 = $seiseki\n";
if ($seiseki > 60){
print "合格です\n";
print "おめでとう\n";
}

print "お疲れ様\n";

$seiseki = 47;
print "得点 = $seiseki\n";
if ($seiseki > 60){
print "合格です\n";
print "おめでとう\n";
}

print "お疲れ様\n";
【結果】
得点 = 75
合格です
おめでとう
お疲れ様
得点 = 47
お疲れ様

■関係演算子
if(条件式)の条件式で使われる演算子。
関係演算子→a == b、a != b、a > b、a >= b、a = 20){
print "ご利用頂けます\n";
}else{
print "未成年の方はご利用頂けません\n";
}

$old = 34;

if ($old >= 20){
print "ご利用頂けます\n";
}else{
print "未成年の方はご利用頂けません\n";
}
結果
未成年の方はご利用頂けません
ご利用頂けます

■複数の条件分岐(if .. elsif .. else)
if (条件式1) {
条件式1が真の時に実行する処理;
}elsif (条件式2) {
条件式1が偽で条件式2が真の時に実行する処理;
}elsif (条件式3) {
条件式1及び条件式2が偽で条件式3が真の時に実行する処理;
}else{
全ての条件式が偽の時に実行する処理;
}
サンプルプログラム「if3.pl」
use strict;
use warnings;
my $num;

$num = 12;

print "数値 = $num\n";
if ($num >= 20){
print "20以上です\n";
}elsif ($num >= 10){←注意;elsif
print "10以上20未満です\n";
}else{
print "10以下です\n";
}

結果
数値 = 12
10以上20未満です

■unless文
「unless」文は条件式が偽の場合の処理を記述するのに使われる。if文とは反対

構造
unless (条件式){
条件式が偽の時に実行する処理1;
条件式が偽の時に実行する処理2;
}
サンプルプログラム「unless.pl」
use strict;
use warnings;
my $seiseki;

$seiseki = 75;
unless ($seiseki < 60){
print "合格です\n";
print "おめでとう\n";
}

print "お疲れ様\n";

結果
合格です
おめでとう
お疲れ様

■三項演算子
書式
条件式 ? 真の時の値 : 偽の時の値;
サンプルプログラム「sankou.pl」
use strict;
use warnings;

my ($seiseki, $kekka);

$seiseki = 75;
$kekka = $seiseki > 60 ? "合格" : "不合格";
print $kekka;

結果
合格

■式修飾子(if修飾子)
サンプルプログラム「siki.pl」
use strict;
use warnings;

my $count;

$count = 5;
print "$count\n";

$count = $count - 10 if $count > 0;
print "$count\n";

$count = $count - 10 if $count > 0;
print "$count\n";

結果
5
-5
-5
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする