見出し画像

10の倍数(10,20,30...)からの差が2以内であるときの条件式

#near_tenメソッドで下記のように出力するための条件式を考える。
#与えられた数値と10の倍数の差が2以下の時は"Ture"、他は"False"を出力。
#引数で与えられる数値は正の整数である。

near_ten(12)→True
near_ten(17)→False
near_ten(19)→True

理解できていなかった点


 「10の倍数との差が2以内」となるためには、一の位の数値が0、1、2、8、9のいずれかである必要がある。与えられた数値の一の位の数値をどのようにして確認するかがポイントである。

実装の手順


 引数で与えられる数値をnumで受け取り、10で割った時のあまりを変数に代入する。あまりの数値が一の位の数値である。

one_place = num % 10

#near_ten(12)の場合、 one_place = 12 % 10 = 2
#near_ten(17)の場合、 one_place = 17 % 10 = 7

  一の位が「0、1、2、8、9」のどれかである時は”Ture”、それ以外は”False”となる条件式を記述する。

one_place = num % 10
if one_place <= 2 || one_place >= 8
  puts "True"
else
  puts "False"
end

よってnear_tenメソッドは以下のように定義できる。

def near_ten(num)
  one_place = num % 10
  if one_place <= 2 || one_place >= 8
    puts "True"
  else
    puts "False"
  end
end

#呼び出し例
near_ten(12)→True
near_ten(17)→False
near_ten(19)→True