擬似コードで学ぶ、2つの変数の中身を入れ替える基本アルゴリズム
プログラミング学習の初期や、基本情報技術者試験(科目B)では、
「2つの変数の値を入れ替えなさい」
という問題が非常によく登場します。
これは単なるテクニックではなく、
「変数」「代入」「一時保存」の理解度を測る定番テーマです。
目次
なぜそのまま代入してはいけないのか?
まず、よくある間違いを見てみましょう。
NG例(直感的だが間違い)
A ← B
B ← A
なぜダメ?
- 1行目で、Aの中身が 上書きされて消える
- 2行目では、すでに元のAの値は存在しない
👉 元の値を一時的に避難させる場所が必要になります。
正しい考え方:一時変数を使う
ポイント
- 入れ替えには 3つ目の変数(作業用) を使う
- これは試験でも、実務でも、教育現場でも王道
擬似コードでの正しい書き方
例:変数 A と B の中身を入れ替える
TEMP ← A
A ← B
B ← TEMP
処理の流れ
| 手順 | 処理内容 | A | B | TEMP |
|---|---|---|---|---|
| 初期状態 | 10 | 20 | ― | |
| ① | TEMP ← A | 10 | 20 | 10 |
| ② | A ← B | 20 | 20 | 10 |
| ③ | B ← TEMP | 20 | 10 | 10 |
👉 元の値を失わずに入れ替え成功
図で考える(イメージ)

初期状態
A → 10
B → 20
- A と B はそれぞれ別の箱
- 中身(値)だけを入れ替えたい
手順①:A を一時変数に退避
TEMP → 10
A → 10
B → 20
- TEMP は避難用の箱
- ここで「元の A の値」を守る
手順②:B を A にコピー
TEMP → 10
A → 20
B → 20
- A の中身は B と同じになる
- まだ入れ替えは完了していない
手順③:TEMP を B に戻す
TEMP → 10
A → 20
B → 10
- 元の A の値を B に戻す
- ここで完全に入れ替え完了
基本情報技術者試験での出題ポイント
よく問われる観点
- 擬似コードの 代入の向き(←)
- 処理順序を正しく追えるか
- 一時変数の役割を理解しているか
試験対策のコツ
- 「入れ替え=一時変数が必要」と即座に思い出す
- 途中状態を書き出して追う癖をつける
- 頭の中だけで処理しようとしない
C#などの実際の言語との対応(参考)
擬似コードで理解できていれば、
実際の言語に置き換えるのは簡単です。
int temp = a;
a = b;
b = temp;
👉 考え方は擬似コードと全く同じ
まとめ
- 変数の入れ替えは 超重要な基礎アルゴリズム
- 直接代入ではなく 一時変数を使う
- 擬似コードで理解できれば、どの言語でも応用可能
- 科目Bでは「読める・追える」ことが最優先
訪問数 3 回, 今日の訪問数 4回



ディスカッション
コメント一覧
まだ、コメントがありません