##6.変数の基本
・変数…値を入れておく箱のようなもの。
変数は「変数名=値」で定義する。
animal = "あざらし"
↳変数名 ↳代入する値
###[注意]
・プログラミングの「=」
⇒「等しい」という意味ではない。
・では、プログラミングの「=」は何か?
⇒「左の変数に右の値を入れる」と言う意味。
この流れを「代入」と言う。
index.rb 置き換えのイメージ
animal = "あざらし" → animal = "あざらし"
puts animal → puts "あざらし"
↳変数animalが値("あざらし")に置き換わる
>_コンソール
あざらし
##[注意]
animal="あざらし" >_コンソール
*1.puts animal あざらし
*2.puts "animal" animal
変数は*2のようにダブルクォーテーションで囲むと
文字列として認識されるため変数として扱う場合は囲まない。
##7.変数を使ってみよう
####プログラムは上から順に実行されていく
⇒変数を使う場合は必ず変数名を定義する。
●文字列の入った変数
・変数を呼び出すと代入した値に「置き換わる」
・文字列が入った変数は文字列と同じように扱える
message ="私が"
puts message + "あざらしだぞ"
animal = "カワウソです"
puts message + animal
>_コンソール
私があざらしだぞ
私がカワウソです
●数値の入った変数
number1 = 20
puts number1 + 3
number2 = 15
puts number1 + number2
>_コンソール
23
38
##8.変数の役割と注意点
●なぜ変数を使うのか?
・プログラムの中には多くの値が存在する。
・プログラムを書く際に正確性や柔軟性が求められる。
⇒この2点を解決する仕組みの1つが変数。
●変数の役割
⇒同じ要素を繰り返し使える
⇒変更に対応しやすい
⇒何の要素か分かりやすい
・変数を使用しない場合
index.rb
puts "私がゴマフアザラシです"
puts "私がアゴヒゲアザラシです"
puts "私がタテゴトアザラシです"
puts "私がバイカルアザラシです"
「私が」の部分を「実は私」に置き換える場合、
三箇所全て変更しなければならない。
・変数を使用する場合
index.rb
text = "実は私"
puts = text + "ゴマフアザラシです"
puts = text + "アゴヒゲアザラシです"
puts = text + "タテゴトアザラシです"
puts = text + "バイカルアザラシです"
「私が」の部分を「実は私」に置き換えるなら代入する
文字列を変更するだけで良い。
●分かりやすい変数名
⇒変数には何の値が代入されているか
判断できる変数名をつける
○ animal = "あざらし"
× I am = "あざらし"
●変数名のルール
⇒Rubyにはいくつかの命名ルールがある。
*基本は自由。
[注意]
2語以上を組み合わせた変数名を付けるときは、
アンダーバー(_)を用いること。
Ex. Spotted_seal など。
*以下は悪い例
・1seal × 数時開始
・zarashi △ ローマ字
・あざらし △ 日本語
##9.変数の更新(1)
●変数の値を変更する
変数は、一度代入した値を変更することができる。
⇒一度値を代入した変数にその後再び値を代入すると、
中身が上書きされる。
index.rb >_コンソール
number = 1
puts number 1
number = 7
puts number 7
⇖上書きされた変数の値が出力される。
⇒プログラムは上から順に実行されるため、中身が上書きされる。
##10.変数の更新(2)
●自分自身に代入する
「既に定義されている変数numberの値に3を足したい」場合
どのようにすれば良いか?
回答:
>_コンソール
number = 2
puts number 2
number = number + 3
puts number 5
上のコードのようにnumberに3を足して、再びnumberに代入する。「=」の右側のnumberは値に置き換わり、計算された結果が左のnumberに代入される。
⇒自分自身に代入する場合も同様、プログラムは上から順に
実行されるため、中身が上書きされる。
##応用(省略形)
基本形 省略形
x = x + 7 x += 7
x = x - 7 x - = 7
x = x * 7 x * = 7
x = x / 7 x / = 7
x = x % 7 x % = 7
##11.変数展開
●変数展開
変数を文字列に含める
#{変数名}
⇒変数展開…変数の値を文字列の中に含める方法。
#[注意]
ダブルクォテーションを使った
文字列の場合にしか変数展開されない。
⇒シングルクォテーションはNG
"" = 〇
'' = ×
ex.カワウソの場合
animal = "カワウソ"
puts "こんにちは#{name}さん"
>_コンソール上
こんにちはカワウソさん
●変数展開のメリット:
index.rb(☆)
age = 25
puts age + "歳です"
(数値) (文字列)
---------------------
>_コンソール上
×エラー発生!!
--------------------------------------------------------
index.rb(★)
age = 25
puts "#{age}歳です"
---------------------
>_コンソール上
25歳です
●変数展開
解説:
☆のように数値と文字列を
足し算で連結することはできない。
しかし、★のように変数展開を用いると
数値の入った変数も問題なく文字列に
含めることが可能。
⇒変数を文字列に含める場合は、
基本的に変数展開を使うようにすること。