こんにちわ.(^-^)
一番,Penelotty,オタ風を吹かせます!!
現在,Perlの入門書を読み終えて,そこに必読といわれていた【初めてののPerl・第2版】というテキストを手にしています.
そこで各章の終わりの練習問題(制御構造)でつまずきましたので,みなさんのご教示を,と発言するしだいです.
まず,環境を記しておきますね.
win98 + Active Perl + asPerl (フリーソフトにいたしましてはなんど礼を言っても足らない限りです)
さぁ,ここからが核なんですが,問題を引用させていただきます.(いいのかなぁ?引用に規則のある場合はぜひ教えてください)
>999が入力されるまで,数を(1行に1個ずつ)読み込んで,すべての合計を表示
>するプログラムを書きましょう.(999は加算しないように注意してください!)例え
>ば,1,2,3,999を入力すると,プログラムは6(つまり1+2+3)を表示します.
この問題にPenelottyは次のように答えました.
@num=<stdin>;
$sum=0;
$i=0;
chomp($num[$i]);
until ($num[$i]==999) {
$sum+=$num[$i];
$i++;
chomp($num[$i]);
}
print $sum."\n";
でも数を入力して,“Ctrl+Z”をタイプすると,最後のPrint文を実行せずに終わってしまいます.
解答を見ると,やはり以上のプログラムより洗練,簡素化,そしてPenelottyの読解力不足が浮き彫りにされますが,そこに目を向けなければこのプログラムは正常に動くはずです.
どうか問題点をご指摘ください.
念のために解答プログラムを引用しておきます.
>print "Enter a number (999 to quit): ";
>chomp($n=<stdin>);
>while ($n != 999) {
> $sum += $n;
> print "Enter a number (999 to quit): ";
> chomp($n=<stdin>);
>}
>print "the sum is $num\n";
お知らせ
拙いながらPenelottyはホームページを持っています,
それは女優の前田愛ちゃん応援ページです.
そこではchirumiruと名乗っています.
みなさん,ぜひ,遊びに来てください.
http://homepage2.nifty.com/penelotty/index.html
P.S. TSNETでのハンドルネームを“chirumiru”に変えたいのですが,一度退会して,新ハンドルネームで再度,入会することになるのでしょうか?
Penelotty