20210325_アウトプット(Ruby)
学んだこと
- キノコードさんの動画をみながら、Rubyに関する差分の知識や、改めて概念について学んだ。
プログラムの基本構造
(1)順次進行(上から順に実行)
(2)条件分岐(条件に応じて処理)
(3)繰り返し(決まった条件や処理を満たすまで繰り返す)
オブジェクト
- 全ての値がオブジェクト
- メソッドを使い操作できる
- なんらかのクラスに所属する
数値オブジェクト(代表的なもの)
- 整数の
Integer
クラス
puts 10.dev(5) # 割り算 => 2 puts 10.remainder(3) #余りを出す => 1
- 小数の
Float
クラス
文字列オブジェクト
- 文字列の
String
クラス
puts "Good mornig".index("d") #dは何番目にあるか探す => 3 puts "Good Morning".length #文字数(半角空白含む)をカウント => 12
オブジェクト
True
クラス
p (10>1) => true p (10>1).class => TrueClass
False
クラス
p (10<1) => false p (10<1).class => FalseClass
配列
- 複数のデータを入れることが出来るロッカー
- 1列は1次元配列といい、複数は多次元配列という
- 一つ一つを要素といい、要素には0から始まるインデックス番号(添字)と呼ばれる住所が割り当てられている
一次元配列の作り方
Array.new()
or[]
変数 = Array.new(要素数)
の場合 🐱アレイ
a = Array.new(3) a[0] = "sato" a[1] = "suzuki" a[2] = "takahashi" p a[0] => "sato" p a[1] => "suzuki" p a[4] => nil
変数 = [データ1,データ2,...]
の場合 🐱角かっこ
a = ["sato", "suzuki","takahashi"] p a[0] => "sato" p a[1] => "suzuki" p a[4] => nil
配列の中身を変更するには
a[1] = "tanaka"
- 添字で要素数を指定し、値を代入する
多次元配列の作り方
- 配列の中に配列を入れる
ary = [["sato", "suzuki"],["takahashi"]] p ary[0][0] #1つめの1番目 => "sato" p ary[0][1] => "suzuki" ary[1][0] #2つめの1番目 => "takahashi" p ary[1][1] => nil
演算子
算出演算子(四則演算や余剰などの計算を行うこと)
+
・%
関係演算子(大小の関係正しいか、正しくないか判断すること、等価)
<
・>=
・!=
論理演算子(複数の条件を判断すること)
&&
・||
複合代入演算子(足し算や引き算などと組み合わせて代入すること)
x += 10
はx = X + 10
と同じ意味。
x = 8 y = 12 z = 20 p x += 10 => 18 p z += y => 32
条件分岐
if 条件 then 条件を満たした時の処理 end # thenは省略できる
age = 40 if age >=10 && age < 20 puts "10代" elsif age >=20 && age < 30 puts "20代" elsif age >=30 && age < 40 puts "30代" else puts "それ以外" end => ”それ以外”
繰り返し
for文
for カウンタ変数 in 範囲(スタート値..終わらせる値)または配列名 do 繰り返し中に実行する処理 end # doは省略できる
- カウンタ変数は、
index
やinteger
の頭文字からi
とすることが多い - 範囲とは、「
スタート値..終わらせる値
」をかく。(例 4になったら終わり →0 .. 4
)
break文
ある条件になった時に、繰り返しを終了させること。
# 3になったら終了 for i in 0 .. 4 if i == 3 break end puts i end => 0,1,2
next文
ある条件になった時に、その処理をスキップさせること。
for i in 0 .. 4 if i == 3 next end p i end => 0,1,2,4
ネスト
- 外側の
0回目
から始まり、内側の0回目
から2回目
の繰り返しが終わった後、外側の1回目
となる。
for i in 0 .. 2 for j in 0 .. 2 p i.to_s + "+" + j.to_s end end => "0+0" "0+1" "0+2" "1+0" "1+1" "1+2" "2+0" "2+1" "2+2"
配列
- 配列の中を順番に繰り返すことができる
ary = [2,4,6,8,10] for i in ary puts i end => 2 4 6 8 10
ary = [2,4,6,8,10] sum = 0 for i in ary sum += i end puts sum => 30
- 1から10まで繰り返し、3の時はスキップし、7で終了するよう表示させよ。
for i in 1 .. 10 do if i == 3 next elsif i == 7 break end puts i end => 1 2 4 5 6
メソッド
def sayHello(greeting) p greeting end sayHello("GoodMorning") => "GoodMorning"
def add(num1, num2) p num1 + num2 end add(6,2) => 8