A

プログラミングの学習記録

【本日の学習内容:puts, 変数, if, 繰り返し処理】

progateなどで何度も学んだRubyの基礎知識について、再度学習しました。

 

 

puts
ターミナルに値(文字や数字)を出力するメソッド
データを出力する際に祭儀に改行が入る


文字列を表示する時には""で囲む

数字を表示する時には""で囲まない
puts 3

計算式を書くと自動で値を計算しその結果を出力してくれる
puts 3+1
puts 3-2
puts 7*2
puts 6/2


ヒアドキュメントを使うと簡単に複数行の文字を出力できる
puts <<~TEXT

こんにちは!ケンチキです。

Rubyを勉強しています。
学習したことをブログで発信しています。

TEXT

ヒアドキュメントを使わなかった場合
puts ""
puts "こんにちは!ケンチキです。"
puts ""
puts "Rubyを勉強しています。"
puts "学習したことをブログで発信しています。"
puts ""




変数
値を入れておく箱のようなもの

値を使いまわせる
値を覚える必要がなくなる
後々の変更に強いプログラムを組める

#numの中に11を格納する
num = 11

numの値を出力
puts num

# 円の面積
radius = 5
puta radius * radius *3.14

変数の値を文字列の中で表示したい場合は式展開をする
name = "ケンチキ"
puts "こんにちは!#{name}です。"


if
条件によって行う処理を変えるために使用する

hp = 10

if hp >= 10
puts "勇者のHPは10以上だ"
end

ifの右側に書かれているhp >= 10が条件式この条件式が成り立つ場合にifとendで囲まれた部分の処理が実行される
比較演算子は実行されるとtrueかfalseが結果として返ってくる

else
ifの部分に書いた条件式の評価結果がfalseのときに行いたい処理がある場合に使う

hp = 5

if hp >= 10
puts "勇者のHPは10以上だ"
else
# ifの条件が成り立たない場合の処理
puts "勇者のHPは10より下だ"
end

elsif
ifの部分に加えてさらに条件を追加したいときに使用する

hp = 3

if hp > 10
puts "勇者は元気だ"
# 複数の条件を指定するときに使う
elsif hp > 5
puts "勇者は弱っている"
elsif hp > 3
puts "勇者はかなり弱っている"
elsif hp > 0
puts "勇者は瀕死だ"
else
puts "勇者はしんだ"
end

繰り返し処理
繰り返し処理は何度も同じ処理を繰り返したい時に使用するもの
他の言語ではwhileやforを使われるがRubyではこれらの文法はほとんど使われない

each
eachは配列や範囲オブジェクトに対して使用することができる繰り返し処理

ちなみに配列とは何個も要素を格納することができるもので範囲オブジェクトとは0~100のように数値的な範囲を表すデータのこと

# 配列 複数のデータを格納できる
users = ["satou", "tanaka", "yamada", "shimizu"]

# 配列に対してeach文で中身を表示
# usersの要素1つ1つをnameに代入してブロック内の処理を実行
users.each do |user|
puts "Hello!! #{user}."
end

実行結果
Hello!! satou
Hello!! tanaka
Hello!! yamada
Hello!! shimizu

each/with_index
eachをindex番号付きで実行する

users = ["satou", "tanaka", "yamada", "shimizu"]

# インデックス番号と配列の要素を同時に出力
users.each.with_index do |name, i|
puts "No.#{i} #{name}"
end

実行結果
No.0 satou
No.1 tanaka
No.2 yamada
No.3 shimizu



No.1からカウントを開始したい場合はインデックスの開始番号を指定する

users = ["satou", "tanaka", "yamada", "shimizu"]

# インデックスの開始番号を指定
users.each.with_index(1) do |name, i|
puts "No.#{i} #{name}"
end

実行結果
No.1 satou
No.2 tanaka
No.3 yamada
No.4 shimizu