include?メソッド
include?メソッドについては以前の投稿で書きました。
今回include?メソッドをもう一度調べているときに、大文字小文字を区別せずに検索する方法があることを知りました。
例:大文字小文字を区別せずに検索する
string = "Hello World"
puts string.downcase.include?("hello world")
true
# ターミナル出力
downcaseメソッドは、大文字を小文字に変換します。
今回は小文字に変換して、("hello world")を検索したという流れです。
include?メソッドを使って、特定の数字が含まれているかをチェックするプログラムを作成
下記条件です。
- 条件1:配列内に1,2,3が全て入っている場合は、「True」と出力すること
- 条件2:配列内に1,2,3の全てが入っていない場合は、「False」と出力すること
def array123(nums)
if nums.include?(1) && nums.include?(2) && nums.include?(3)
puts "True"
else
puts "False"
end
end
# 呼び出し例
array123([1, 1, 2, 3, 1])
True
# ターミナル出力
解説
1行目では、array123メソッドの仮引数numsに配列([1, 1, 2, 3, 1])が格納されています。
2行目では、配列に1, 2, 3が含まれているかどうか条件分岐を使って記述しています。
演算子&&を使って複数の条件設定が可能です。
もし条件分岐の記述を以下のようにしたらどうなるか?
def array123(nums)
if nums.include?([1, 2, 3])
puts "True"
else
puts "False"
end
end
# 呼び出し例
array123([1, 1, 2, 3, 1])
ターミナルでは以下のように返されます。
False
呼び出し例に書いてある配列は、1, 2, 3以外の(全部で5つの数字)が含まれています。
そのため、Falseと返されてしまいます。
&&を使って1つずつ数字が含まれているか確認することで、正しく検知してくれるということです。
参考文献