0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ruby if,elseの問題

Posted at

初めに

初学者です。rubyの問題を私なりに解説することによって定着するのが目的です。間違いなどありましたらご指摘お願いします。

問題

以下の条件式をif文を用いて記述してください。

数値numが1以上かつ10以下の範囲であればTrueを出力します。
または、outside_modeがTrueの場合は数値numが0以下、11以上であってもTrueを出力します。
それ以外はFalseを出力する条件を論理演算子&&と||を用いて作りましょう。

def in1to10(num, outside_mode)
  # ここに条件式を記述する
end

ではまず論理演算子である&&と||の解説からしていきます。

&&

&&とは2つの値が真の時に真を返します。
例としては A && B ではAとB両方とも真の場合真を返す、片方でも真でなければfalseを返します。
&&演算子はandとも表せれます。andに変換するとわかりやすくなると思います。ただ基本的には&&の方を使うそうです。

||

||とは2つの値どちらかが真の場合、真を返します。要するにA||Bという式があった場合、AとB両方とも偽の場合は偽になりそれ以外は全て真になります。

では上記2つの論理演算子を使用して回答を書いていきます。

解説

まず今回は、in1to10メソッドに返す引数は(5,false)にします。

def in1to10(num, outside_mode)
end
in1to10(5,false)

では条件式をif文を使用して書いていきます。
まず最初に問題文の『数値numが1以上かつ10以下の範囲であればTrueを出力します。』の部分から書いていきます。
1以上、10以下と2つの条件が指定されています。よって&&を使い条件を2つ記述します。

def in1to10(num, outside_mode)
 if(num >= 1 && num <= 10)
   puts "True"
 end
end
in1to10(5,false)

続いては『または、outside_modeがTrueの場合は数値numが0以下、11以上であってもTrueを出力します。』の部分です。
ここでは、||を使います。outside_modeがTrueの場合は||の前に式がfalseでもTrueになるからです。

def in1to10(num, outside_mode)
  if (num >= 1 && num <= 10) || outside_mode
    puts "True"
  end
end
in1to10(5,false)

最後にelseでそれ以外はfalseになる記述を書いたら終了です。

def in1to10(num, outside_mode)
  if (num >= 1 && num <= 10) || outside_mode
    puts "True"
  else
    puts "False"
  end
end
in1to10(5,false)

また今回の式では最初の5が1以上かつ10以下の数値になっているのでTrueを返します。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?