20210325_アウトプット(Ruby)

アプトプット画像

学んだこと

  • キノコードさんの動画をみながら、Rubyに関する差分の知識や、改めて概念について学んだ。

youtu.be

プログラムの基本構造

(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 += 10x = 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は省略できる
  • カウンタ変数は、indexintegerの頭文字から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

感想

  • Youtubeの編集どうやってやっているんろうと感じるほど、ポップなどの表現方法が見やすかった。
  • Rubyの基礎の力をつけるにはどうしたらいいんだろうか。みんなどうやって理解し、身につけているんだろうか。
  • codewarや、paizaラーニングなど、問題を解けば解くほど自信をなくす。自分の中の再現性がない気がする。
  • もっとRubyの基礎のことについて学べる書籍で、ちゃんと学び直そう。