作者: Penelotty
日時: 2002/9/27(14:46)
こんにちわ.(^-^)

一番,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