提出課題:04回目レポート
本文:
1.何番まで実施かたか
4番まで

2.作成したプログラム
#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

total = 0
number = 1

print"8回のレポートの合計得点を求めます。\n"

while true 
  printf("%d回目のレポートの得点を入力してください(終了はexit)。\n", number)
   score = gets.chomp!
   if score == "exit"
     break
   end
   if score.to_f > 8 || score.to_f < 0
     print"もう1回得点を入力してください。\n"
     redo
   end
     total += score.to_f
   number += 1
   if number == 9
     break
   end
end
number -= 1
printf("%d回のレポートの合計は%3.1fです。\n",number,total)

average = total / number
printf("%d回のレポートの平均は%3.1fです。\n",number,average)

3.プログラムの実行結果
8回のレポートの合計得点を求めます。
1回目のレポートの得点を入力してください(終了はexit)。
6
2回目のレポートの得点を入力してください(終了はexit)。
5
3回目のレポートの得点を入力してください(終了はexit)。
4
4回目のレポートの得点を入力してください(終了はexit)。
8
5回目のレポートの得点を入力してください(終了はexit)。
7
6回目のレポートの得点を入力してください(終了はexit)。
9
もう1回得点を入力してください。
6回目のレポートの得点を入力してください(終了はexit)。
6
7回目のレポートの得点を入力してください(終了はexit)。
exit
6回のレポートの合計は36.0です。
6回のレポートの平均は6.0です。

4.プログラムの説明
9行目の while true は while の横の繰り返し継続条件が「常に条件を満たす」ということになり、永久に繰り返しを継続せよという構文になる。10行目はgetsメソッドを使ってユーザーからの得点の入力を受け取り、score に代入している。11行目の if score == "exit" は、12行目のbreakするための条件で、ユーザーがexitと入力すると繰り返しから抜けるようになる。15行目の if score.to_f > 8 || score.to_f < 0 と17行目の redo は、入力した得点が入力した得点がマイナスの場合や、8点を超える場合は入力間違いとみなして、その回の繰り返しの先頭からやりなおすようにしている。19行目の total += score.to_f は、 total の値にユーザーが入力した値を実数変換して加算している。21行目の  if number == 9 はレポートの得点を8回入力した場合に繰り返しから抜けるようにしている。number は1から始まるので、8回入力した場合にするには、9回にしないといけないので9にした。なので、25行目の number -= 1 でユーザーが入力した値に戻るようにしている。

5.感想
今回は初めての反転授業で、講義で課題のプログラムを作成したが流れがだいだい分かったので、次回の反転授業に活かしたい。breakやredoを使い、繰り返しから抜ける様々な方法が分かったので、色々な方法で繰り返しから抜ける方法を試していきたい。

7.添付ファイル
参照を押しても送れませんでした
添付: