Newer
Older
Ruby / if.rb
# 点数の入力・判別、それに対してのコメントをするプログラム
# 「if」はプログラムに分かれ道をつくることができる。
# 場合分けをして実行結果を変化させる処理のことを条件分岐という
# 場合分けを増やす場合は「elsif」
# 場合分け以外の場合は「else」を使う。

# コード
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

# 点数の入力
puts "テストの点数を入力してね"
score = gets.to_i

# 点数の判定
if score > 100 or score < 0 # 0〜100以外の点数は受け付けない。
    puts "もう一度入力してください"
elsif score >= 100
    puts "すごい!満点だ!"
elsif score >= 80
    puts "素晴らしい!"
elsif score >= 60
    puts "グッド!"
elsif score >= 40
    puts "よくやった!"
elsif score >= 20
    puts "もう少し頑張ろう!"
elsif score >= 0
    puts "もっと勉強しよう!"
end


# このコードを改造してよりよくするなら。
# 科目ごとに点数を入力してもらう。while, 配列(array), メソッド(method)を使う。

# 改造コード(例)
#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

# 判別をするメソッド
# def hanbetu(score)
#     comment = ""
#     if score > 100 or score < 0 # 0〜100以外の点数は受け付けない。
#         comment = "もう一度入力してください"
#     elsif score >= 100
#         comment = "すごい!満点だ!"
#     elsif score >= 80
#         comment = "素晴らしい!"
#     elsif score >= 60
#         comment = "グッド!"
#     elsif score >= 40
#         comment = "よくやった!"
#     elsif score >= 20
#         comment = "もう少し頑張ろう!"
#     elsif score >= 0
#         comment = "もっと勉強しよう!"
#     end
#     return comment # comment変数に代入された文字列を返す
# end

# subject = ["国語","数学","理科","社会","英語"]
# tensuu = [] # 入力された点数が追加される配列

# i = 0
# while i <= subject.length - 1 # iが、配列の長さ(今回は4)より大きくなったらループを抜ける。配列の長さを取得するには、.lengthを使う。
#     printf("%sの点数は?\n>>", subject[i])
#     tensuu << gets.to_i #入力された点数を配列(tensuu)に追加
#     i += 1
# end

# puts ""

# puts "最後に5科目の点数を確認をしましょう。"
# j = 0
# while j <= subject.length - 1 #上に同じ
#     printf("%sの点数は%i点です。%s\n", subject[j], tensuu[j], hanbetu(tensuu[j])) #科目、点数をそれぞれの配列の左から順番に出力している。最後に点数に対してコメントを返す。
#     j += 1
# end