第10章 さまざまな制御構造 練習問題

初めてのPerl、とりあえず最後まで読めました。あとは練習問題は解いて行こう。平行してCPAN遊びもしたいところ。

1. 数あてゲームを作る

10章は練習問題はこれだけです。Cで言うcontinueがnext、breakがlastね。

use strict;

my $seacret = int (1 + rand 100);

while (1) {
    print "Enter your answer: ";
    chomp(my $ans = <STDIN>);

    if ($ans eq "exit" or $ans eq "quit" or $ans eq "") {
        print "End...\n";
        last;
    } elsif ($ans == $seacret) {
        print "Yeah! You got it!\n";
        last;
    } elsif ($ans > $seacret) {
        print "Too high\n";
    } elsif ($ans < $seacret) {
        print "Too low\n";
    } else {
        next;
    }
}

exitやquitを判定する条件式は一番始めにもってきます。でないと、quitみたいな文字列が入力されたときに、文字列と数値の比較が行われてしまってうまく動かない。この条件式は、正規表現を書いた方がよりPerl的だったなー。

/exit|quit|^\s*$/i

解答ではこんなノリの正規表現を使用していました。

初めてのPerl

初めてのPerl

  • 作者: ランダル・L.シュワルツ,トムフェニックス,Randal L. Schwartz,Tom Phoenix,近藤嘉雪
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2003/05
  • メディア: 単行本
  • 購入: 15人 クリック: 474回
  • この商品を含むブログ (294件) を見る