変数とデータ型:値を入れる箱に、名前と種類がある
変数は、値を入れておく名前つきの箱です。x = 5 は「x は5と等しい」ではなく「x に5を入れる(代入する)」という意味です。だから x = x + 1 のような式が成り立ちます。箱に入れる値にはデータ型(整数・小数・文字列・真偽値など)があり、種類を間違えると「5」+「3」が53になるような予想外の結果になります。
このページで学べること
- 変数と代入のしくみがわかる
- x=x+1 の意味を説明できる
- 主なデータ型の違いがわかる
- 型のちがいによるバグを見つけられる
前提知識
- アルゴリズム
- 四則計算
- 文字と数の区別
代入と、4つの基本データ型
多くのプログラミング言語で = は代入を表します。「等しいか調べる」ときは == のように別の記号を使います。
x = 3 のあとに x = x + 4 を実行すると、右側の x + 4(=3+4=7)が計算され、その結果が x に入ります。よって x は7になります。算数の等式なら x=x+4 は成り立ちませんが、代入だと考えれば自然です。
データ型は、箱に入れられる値の種類です。よく使うのは次の4つです。
| 型 | 入る値 | 例 |
|---|---|---|
| 整数(int) | 小数点のない数 | 0、7、−15 |
| 小数(float) | 小数点のある数 | 3.14、0.5 |
| 文字列(string) | 文字の並び | "こんにちは"、"5" |
| 真偽値(boolean) | 真か偽の2つだけ | true、false |
同じ「5」でも、数の5と文字列の "5" は別物です。数なら 5+3=8 ですが、文字列なら "5"+"3"="53"(つなげる)になる言語が多くあります。
x = 5 … 代入 / x == 5 … 等しいか調べる(比較)図でイメージする(箱の中身が書きかわる)
x = 3 → x = x + 4
例題(くわしい手順)
3人のテストの点数(80、90、70)の合計を、変数を使って求める流れを追います。
- 入れ物を用意:合計を入れる変数 total に 0 を代入(total = 0)。
- 1人ずつ足す:total = total + 80 → 80。total = total + 90 → 170。total = total + 70 → 240。
- 平均も出す:avg = total ÷ 3 = 80。
最初に total = 0 としておくのが大切です。初期値を入れ忘れると、箱の中身が決まらずエラーや予想外の値になります。
数の5と文字列の「5」の違い
| くらべること | 数(整数)の 5 | 文字列の "5" |
|---|---|---|
| 書き方 | 5 | "5"(引用符で囲む) |
| 5 + 3 の結果 | 8(たし算) | "53"(つながる) |
| 計算に使えるか | 使える | そのままでは使えない(数に変換が必要) |
フォームに入力された値は多くの場合文字列として届きます。計算する前に数へ変換するのが定番の処理です。
よくある間違い
= は代入です。x = x + 1 は「右側を計算して x に入れ直す」という意味。等しいか調べたいときは == を使います。
フォームから受け取った "5" と "3" をそのまま足すと "53" になります。数値に変換してから計算します。
動きはしますが、後から読めなくなります。total、price、count のように中身がわかる名前にすると、間違いも減ります。
練習問題
まず自分で解いてから解説を開きましょう。
x = 3 のあとに x = x + 4 を実行すると、x はいくつになりますか。
解答・解説を見る
答え:7
右側の x+4=3+4=7 を計算し、その値を x に入れ直します。よって7です。
文字列の "10" と "20" を足すと、多くの言語ではどうなりますか。
解答・解説を見る
答え:"1020"
文字列どうしの+は連結になるため "1020" です。30 にしたいときは数値に変換してから足します。
a = 2、b = 3 のあと、a = b、b = a を実行すると a と b はいくつになりますか。
解答・解説を見る
答え:a=3、b=3
a = b で a が3になり、その直後の b = a ではすでに3になった a が入るため b も3。値の交換には一時的な変数(tmp)が必要です。
「年齢が18以上か」を表す変数の型は何になりますか。
解答・解説を見る
答え:真偽値(boolean)
結果は「はい(true)」か「いいえ(false)」の2つだけなので真偽値です。条件分岐の判定にそのまま使えます。
よくある質問
Q. 変数とは何ですか?
値を入れておく名前つきの箱です。x=5 のように書くと、xという箱に5が入ります。あとから中身を書きかえたり、計算に使ったりできます。
Q. x=x+1 はなぜ成り立つのですか?
= が「等しい」ではなく「代入」を意味するからです。右側の x+1 を先に計算し、その結果を同じ箱 x に入れ直すので、中身が1増えます。
Q. データ型はなぜ必要なのですか?
同じ「5」でも数と文字列では動きが変わるからです。数なら 5+3=8、文字列なら "5"+"3"="53" になります。型を意識すると、こうした予想外の結果を防げます。
Q. 変数の名前はどうつけるとよいですか?
中身が分かる名前にします。goukei や nedan のように何が入っているかが読めれば、あとで読み返したときに間違いにくくなります。a や b だけでは分かりません。
次に学ぶ内容
高等学校「情報I」および基本的なIT知識の範囲を参照し、オリジナルに作成(実在試験問題の転載はありません)。正確性は編集・監修フローで確認しています(仕様書 第11章)。