next up previous contents index
次へ: バイリンガル?--その他のプログラミング言語の例 戻る: 単純な事は任せて--ループ処理   目次   索引

スマートにいこう--条件分岐

前節の最後に完成したプログラムで、利用者がマイナスの数値をいれたらどうな るでしょうか?少し考えてみて欲しいのですが、マイナスの数値をいれると答は いつも1となってしまいます。入力がプラスの数であることを前堤として書いて いるからですね。

入力された数値を検査して、もしもマイナスであればそこで処理をやめてしまえ ば、それはそれで正しい動作ということができます。このためには、条件に応じ てプログラムを実行する場所を変える必要が発生します。sample.pl を 以下のように書換えてみましょう。6 行目から 9 行目を追加しています。

01:  print "Hello!\n";
02:  print "Input any number:";
03:  $num=<>;
04:  print "Your number is $num";
05:
06:  if($num<0){
07:    print "Negative!\n";
08:    exit;
09:  }
10:
11:  $s=0;
12:  $i=1;	
13:  do{
14:    $s=$s+$i;
15:    $i=$i+1;
16:  }while($i<=$num);
17:
18:  print "1+2+..+$num = $s\n";

6 行目以降に if(...){..} という記述があります。これは、 (...) の条件が成立している場合は {...} の処理を行ない、そ うでない場合はこの処理を省略してしまうと言う事を意味しています。

つまり、入力された数値 ($num) が 0 よりも小さかったら Negative! と表示し、exit 命令を実行する、となります。 exit はプログラムの処理を停止することを意味する命令です。

$num<0 がなりたたない場合(入力された数値が0以上)だけ 11 行目以降 の処理が行なわれることに注意してください。



NAGATO Yasushi 平成16年4月6日