2.プログラムの基礎
🏁 Rubyで「**数値・文字列・変数・定数**」を扱う方法を学び、基本的なプログラムを書けるようになる! 🧭学習の流れ&重要キーワード
ステップ | キーワード | 内容 |
---|---|---|
1 | 数値の出力と演算 |
puts 1 や 1 + 1 などで四則演算を実行する |
2 | 文字列の出力 |
'Hello' や "Hello" を puts で表示 |
3 | 文字列の連結 |
'Hello' + 'World' などの方法で文字列をつなげる |
4 | データ型の違い |
1 + 1 (数値)と '1' + '1' (文字列)の違い |
5 | 変数の代入と使用 |
x = 1 や puts x + y など |
6 | 文字列の式展開 |
"Hello, #{name}" で変数を文字列に埋め込む |
7 | 定数の定義と使用 |
PI = 3.14 のように変更しない値を定義する |
- 前提1(「1.Rubyを動かす環境構築」の続き):
root@xxxx:/app#
の状態 ※KoSax ruby_playground %
の場合、docker compose exec app bash
を実行すること
- ①の前に:
mkdir chapter2
(chapter2
ディレクトリ作成)→touch chapter2/integer.rb
(chapter2
ディレクトリの中にinteger.rb
ファイル作成)
①数値の四則演算
-
VSCode→integer.rb
puts 1
-
ターミナル
ruby chapter2/integer.rb
-
出力(ターミナル)
1
①数値の四則演算
-
VSCodeで命令を書く→ターミナルで
ruby chapter2/integer.rb
➡︎命令を実行し、出力される
puts 1 #そのまま出力
puts 1 + 1 #足し算を出力
puts 2 - 1 #引き算を出力
puts 2 * 3 #掛け算を出力
puts 6 / 3 #割り算を出力
puts 5 % 2 #割り算の余り(剰余)を出力
puts 2 ** 3 #累乗を出力
- ②の前に:
touch chapter2/string.rb
(chapter2
ディレクトリの中にstring.rb
ファイル作成)
②文字列を出力する
-
VSCode→string.rb
puts 'Hello' puts 'Hello' + 'RUNTEQ' puts 'Hello' + ' ' + 'RUNTEQ'
-
ターミナル
ruby chapter2/string.rb
-
出力(ターミナル)
Hello HelloRUNTEQ Hello RUNTEQ
②文字列を出力する
🔠「+」で文字をつなげる
-
'Hello' + 'KoSax'
→ くっつける -
'Hello' + ' ' + 'KoSax'
→ 空白もはさめる
③文字列と数値の違いを学ぶ
-
VSCode→string.rb
puts 1 + 1 puts '1' + '1' puts '1'.to_i + '1'.to_i
-
ターミナル
ruby chapter2/string.rb
-
出力(ターミナル)
2 11 2
③
💡解説
書き方 | 結果 | なぜ? |
---|---|---|
1 + 1 |
2 |
数値どうしやから、足し算になる |
'1' + '1' |
11 |
文字列やから、「連結」される |
'1'.to_i + '1'.to_i |
2 |
.to_i で文字列を数値に変換してから足してる |
puts '1'.to_i + '1'.to_i
についてもう少し詳しく
-
'1'
- 文字列(文字データ)であり、数値ではない!!
-
.to_i
- 文字列を数値に変換するメソッド
つまり…
-
'1'.to_i + '1'.to_i
= 1+1
💡補足
-
.to i
- to integerの略
- to=「〜にする!」
- integer:インテジャー=整数
- to integer=整数(文字列)にする
補足
メソッド | 意味 | 例 | 結果 |
---|---|---|---|
.to_i |
整数として扱う(to integer) | '3'.to_i |
3 (整数) |
.to_f |
小数として扱う(to float) | '3.14'.to_f |
3.14 (小数) |
.to_s |
文字列として扱う(to string) | 1.to_s |
'1' (文字列) |
.to_a |
配列として扱う(to array) | 'abc'.chars.to_a |
["a", "b", "c"] |
- ④の前に:
touch chapter2/integer_variable.rb
(chapter2
ディレクトリの中にinteger_variable.rb
ファイル作成)
④変数を使った数値の四則演算
-
VSCode→integer_variable.rb
x = 1 y = 2 z = 3 #x,y,z これらが変数📦 puts x + y # 1 + 2 = 3 puts y - x # 2 - 1 = 1 puts x * y * z # 1 * 2 * 3 = 6 puts 6 / z # 6 / 3 = 2
-
ターミナル
ruby chapter2/integer_variable.rb
-
出力(ターミナル)
3 1 6 2
④
- 変数
- 名前をつけて値を入れておける入れ物📦のこと
- x,yのように名前をつけておくと、あとで何回でも使いまわせるし、途中で中身だけ変えることもできる🙆♂️
- ⑤の前に:
touch chapter2/string_variable.rb
(chapter2
ディレクトリの中にstring_variable.rb
ファイル作成)
⑤変数を使った文字列の連結と「式展開」
-
VSCode→string_variable.rb
x = 'Hello' y = 'KoSax' puts x + ' ' + y # 連結(+)でつなぐ puts "#{x} #{y}" # 式展開(ダブルクオート内で #{変数} を使う) puts "#{x}#{y}" # 空白が埋まる =""内が空白も含めて式展開される puts '#{x} #{y}' # シングルクオートやと式展開されへん
-
ターミナル
ruby chapter2/string_variable.rb
-
出力(ターミナル)
Hello KoSax Hello KoSax HelloKoSax #{x} #{y}
⑤変数を使った文字列の連結と「式展開」
⚠️注意ポイント
書き方 | 結果 | ポイント |
---|---|---|
"#{x} #{y}" |
Hello KoSax | ダブルクオート → 展開される |
'#{x} #{y}' |
#{x} #{y} | シングルクオート → ただの文字になる |
📍押さえておきたいこと
- ダブルクオートで囲むと、中身がそのまま展開される
- シングルクオートで囲むと、代入されず、そのまま出力される
とても大事なこと
-
例題:food変数に文字列「きゅうり」を代入し、price変数に数値「100」を代入する記載をした後、「きゅうりは100円です」という文字列を返す処理を記述せよ。
def chapter02_04 food = 'きゅうり' # 変数への代入値を変更 price = 100 # 変数への代入値を変更 # コードを記載 end puts chapter02_04
⬇︎
💡ポイント
- 数値と文字列をそのまま出力することはできない!!!
- NG解答例
-
chapter02_04 = food + “は” + price + “円です”
- 数値:price
- 文字列:food / “は” / “円です”
-
- OK解答例①:
.to_s
(=to string=文字列に変換)を用いて数値を文字列に変換する-
chapter02_04 = food + “は” + price.to_s + “円です”
-
price.to_s
=文字列だから、"price.to_s"
としない
-
-
- OK解答例②:式展開を使う
-
chapter02_04 = "#{food}は#{price}円です”
-
‘**#{food}は#{price}円です**’
➡︎#{food}は#{price}円です
(出力結果) - 式展開の方が数値でも文字列でも自動で文字列にしてくれるから便利!
-
-
- ⑥の前に:
touch chapter2/constant.rb
(chapter2
ディレクトリの中にconstant.rb
ファイル作成)
⑥定数(const)
🎁- 定数について
- 基本的に変更しない値を入れる箱📦
- 定数の名前は最初が大文字
- 書き換えようとすると警告が出る⚠️
- 書き換えらるけど、基本的に書き換えないのがマナー
-
VSCode→constant.rb
PI = 3.14159 TAX_RATE = 0.10 puts PI # 円周率 puts TAX_RATE # 消費税
-
ターミナル
ruby chapter2/constant.rb
-
出力(ターミナル)
3.14159 0.1
⑥定数(const)
⚠️書き換えるとどうなる??
-
VSCode→constant.rb
PI = 3.14
-
ターミナル
ruby chapter2/constant.rb
-
出力(ターミナル)
3.14159 0.1 chapter2/constant.rb:8: warning: already initialized constant PI chapter2/constant.rb:1: warning: previous definition of PI was here
➡︎警告が出る
- 消費税(
TAX_RATE = 0.1
) - アプリ名(
APP_NAME = "KoSax"
) - 上限回数(
MAX_RETRIES = 5
)
「あとでどこからでも同じ値を使いたい」ってときに便利✨