投票により、映画の星の数を平均しているプログラム movie.rb はどのようなものだろうか。
#!/usr/koeki/bin/ruby
def average(score) # scoreは数値がたくさんしまわれる配列
sum = 0.0 # 割り算する予定なので浮動小数点数にしておく
for stars in score # for A in B で B の中の A について
sum += stars
end
sum/score.length #配列 score の要素数を数え、それで sum を割る
end
points=[] # からっぽの配列 points を作る
i=0 # i が points の添字となる(入力された行を数える添字)
while true
STDERR.print "星を入力して下さい: "
line = gets
if line == nil
break
end
points[i] = line.chomp!.to_i
i += 1
end
printf("\n みんなの平均は %3.1f です\n", average(points))
となる。終らせるには、Ctrl-D をタイプして計算を止める。例:
% ./movie.rb
星を入力して下さい: 3
星を入力して下さい: 4
星を入力して下さい: 3
星を入力して下さい: 2
星を入力して下さい: (Ctrl-D を押す)^D
みんなの平均は 3.0 です
== は比較演算子、nil は、空の情報、という意味であった。 構造についてはこちら
Madoka Nishimura <madoka@e.koeki-u.ac.jp>