02 変数とデータ型

1. 変数とは

変数とは、値を一時的に記憶しておく「箱」のようなものです。 プログラムの処理中に必要な数値・文字・真偽などを変数に入れておき、後から取り出して使います。

num 10 変数名 num ← 10 代入 x ← num 参照

2. データ型の種類

変数を使うには、まず「どんな種類の値を入れるか(データ型)」を宣言する必要があります。

データ型説明宣言・代入の例
整数型小数を含まない整数整数型: count ← 5
実数型小数を含む数値実数型: pi ← 3.14
文字列型文字の並び(" "で囲む)文字列型: name ← "Taro"
文字型1文字のみ(' 'で囲む)文字型: grade ← 'A'
論理型true(真)か false(偽)論理型: flag ← true

3. 代入の基本(← を使う)

整数型: num
num ← 100          // num に 100 を代入

実数型: rate ← 3.14    // 宣言と代入をまとめて書くこともできる

文字列型: name ← "太郎"

論理型: flag ← false
← の向きに注意:「コピー先 ← コピー元」の順です。
num ← 100 は「numに100を入れる」という意味です。

4. 型による演算の違い

整数型同士の割り算 → 小数点以下は切り捨て

整数型: a ← 10
整数型: b ← 3
整数型: c ← a / b
c を出力   // 出力: 3(3.33...ではなく切り捨て)

整数型と実数型の混在 → 結果は実数型

整数型: x ← 3
実数型: y ← 2.0
実数型: z ← x * y
z を出力   // 出力: 6.0
整数型 10 ÷ 整数型 3 = 整数型 3(切捨て) 整数型 ÷ 整数型 → 整数型(小数点以下切り捨て) 整数型 3 × 実数型 2.0 = 実数型 6.0 整数型 × 実数型 → 実数型(精度の高い方に合わさる)

5. 変数の上書きと入れ替え

上書き(再代入)

整数型: x
x ← 5
x ← 10   // 5 は消えて、10 に上書きされる

2変数の値の入れ替え(定番アルゴリズム)

AとBの値を交換するには、一時変数(temp)が必要です。直接入れ替えると片方の値が消えてしまいます。

初期状態 A 3 B 7 temp ? ① temp ← A A 3 B 7 temp 3 ② A ← B A 7 B 7 temp 3 ③ B ← temp(完成) A 7 B 3 temp 3
整数型: A ← 3
整数型: B ← 7
整数型: temp

temp ← A    // ① temp に A(3) を退避
A ← B       // ② A に B(7) を上書き
B ← temp    // ③ B に temp(3) を入れる
// 結果: A=7, B=3
ポイント:temp なしで A ← B から始めると A の元の値(3)が消えてしまい、B に戻せなくなります。

6. 論理型の活用例

論理型: isAdult
整数型: age ← 20

if ( age が 18 以上 )
    isAdult ← true
else
    isAdult ← false
endif

7. 理解度チェック問題

問題02-1

次の処理を実行した後の A, B の値として正しいものはどれか。

整数型: A ← 3
整数型: B ← 7
整数型: temp

temp ← A
A ← B
B ← temp
解説を表示 正解:イ
temp=3 → A=7 → B=3 の順に処理されます。AとBの値が入れ替わります。

問題02-2

次のコードを実行すると c の値はいくつになるか。

整数型: a ← 7
整数型: b ← 2
整数型: c ← a / b
c を出力
解説を表示 正解:ウ
整数型同士の割り算は小数点以下を切り捨てます。7 ÷ 2 = 3.5 → 切り捨て → 3

問題02-3

次のコードを実行すると result の値はいくつになるか。

整数型: x ← 4
実数型: y ← 2.5
実数型: result ← x * y
result を出力
解説を表示 正解:エ
整数型と実数型の演算結果は実数型になります。4 × 2.5 = 10.0

問題02-4

次の処理を実行したときの flag の最終値はどれか。

論理型: flag ← false
整数型: x ← 8

if ( x MOD 3 が 0 と等しい )
    flag ← true
endif
解説を表示 正解:ウ
8 MOD 3 = 2(8は3の倍数ではない)→ 条件不成立 → flag は初期値 false のまま

問題02-5

次の処理を実行した後の count の値はどれか。

整数型: i
整数型: count ← 0

for ( i を 1 から 5 まで 1 ずつ増やす )
    if ( i MOD 2 が 0 と等しい )
        count ← count + 1
    endif
endfor
解説を表示 正解:ア
i が 1〜5 のうち偶数は 2 と 4 の2つ → count = 2