本日な問題はこちらでした。
メソッドに3つの整数a b cを与えます。
・「aとbの差が1」または「aとcの差が1」であり、かつ「bとcとの数値の差が2以上」の場合はTrue
・それ以外はFalse
と出力するメソッドを作りましょう。
出力例:
close_far(1, 2, 10) → True
close_far(1, 2, 3) → False
close_far(4, 1, 3) → True
absメソッドを使いましょう。
回答がこちらです。
def close_far(a,b,c)
x = (a-b).abs
y = (a-c).abs
z = (b-c).abs
if x == 1 && z >= 2
puts "True"
elsif y == 1 && z >= 2
puts "True"
else
puts "False"
end
end
まず、初めの記述で、abcそれぞれの差分を算出し、絶対値に変換します。
x == 1 && z >= 2で、「aとbの差が1」であり、かつ「bとcとの数値の差が2以上」を検討しています。
y == 1 && z >= 2で、「aとcの差が1」であり、かつ「bとcとの数値の差が2以上」を検討しています。
条件式は、以下のようにまとめて記述することもできます。
if (x == 1 && z >= 2) || (y == 1 && z >= 2)
puts "True"
else
puts "False"
end
初心者の私にはまだ難しい問題でした。
このような条件式が直ぐに思いつく日はやって来るのでしょうか?
いい勉強法、集中力が続く方法があればいいです。