TEHC CAMP 91期夜間休日 卒業後活動記録
6/23 学習内容とまとめ
rubyドリル
検索問題
任意の文字列に"code"が左から何文字目に出てくるか、その数を出力するメソッドを作ります。
indexメソッド
文字列や配列の中に指定した文字列が含まれていた場合、その文字列の開始位置を整数の値で返すメソッド
str.index(検索したい文字列,[検索を開始する位置])
def count_code(str)
puts str.index("code", 0) + 1
end
indexメソッドは文字列の先頭を0から数えるので+1にします。
ifとelse問題
20時から翌朝7時までは「NG」、それ以外は「OK」とオウムが喋るメソッドを作ります。
喋らないとき→false
喋るとき→true
呼び出し方:parrot_trouble(talking, hour)
def parrot_trouble(talking, hour)
if talking && (hour < 7 || hour > 20)
puts "NG"
else
puts "OK"
end
end
if talking として、talkingにtrueが入っているときに真と判断されます。
そして、次の条件式に(hour < 7 || hour > 20)で20時から翌朝7時を判断しています。
A || B でAまたはBを表します
ちなみに、
A && B はAかつBを表します。
偶数値の取得
配列の中から偶数の数を返して出力するメソッドを作ります。
出力例:count_evens([2,1,2,3,4])→3
even?メソッド
対象の数値が、偶数かどうかを判断するメソッド
10.even?
#=> true
5.even?
#=> false
def count_evens(nums)
count = 0
nums.each do |num|
if num.even?
count += 1
end
end
puts count
end
変数countを用意して、カウントした数を保持しています。
each内に記述していないのは、each内だと処理を繰り返すたびに
count = 0が実行されて、数値が0に上書きされてしまうため
eachの外に記述しています。
配列に入っている数字をeach文で取り出して、
even?メソッドで偶数かどうか確認して、偶数だった場合はcountに1を足します。
puts count で偶数の数を出力します。
特定の数字を検知するプログラム
特定の数字が存在するかどうかを判定するプログラムを作ります。
要件は
- 配列内に1,2,3が全て入っている場合は、「True」と出力すること
- 配列内に1,2,3の全てが入っていない場合は、「False」と出力すること
出力例:array123([1,1,2,3,1])→True
:array123([1,2,4])→False
include?メソッド
指定した値が、配列に含まれているかを判定するメソッド
array = ["foo", "bar"]
puts array.include?("bae")
#=> true
puts array.include?("hoge")
#=> false
def array123(nums)
if nums.include?(1) && nums.include?(2) && nums.include?(3)
puts "True"
else
puts "False"
end
end
#呼び出し例
array124([1,1,2,3,1])
array123メソッドの仮引数に対象の配列が格納されます。
includeメソッドを使い、1、2、3が含まれている場合は"True"を出力する
ための条件分岐をしています。
&&演算子を複数使用して、条件を複数設定しています。
progate 学習コースⅥ 8まで