擬似コードで学ぶ、2つの変数の中身を入れ替える基本アルゴリズム

2026年1月30日

プログラミング学習の初期や、基本情報技術者試験(科目B)では、

「2つの変数の値を入れ替えなさい」

という問題が非常によく登場します。

これは単なるテクニックではなく、

「変数」「代入」「一時保存」の理解度を測る定番テーマです。


なぜそのまま代入してはいけないのか?

まず、よくある間違いを見てみましょう。

NG例(直感的だが間違い)

A ← B
B ← A

なぜダメ?

  • 1行目で、Aの中身が 上書きされて消える
  • 2行目では、すでに元のAの値は存在しない

👉 元の値を一時的に避難させる場所が必要になります。


正しい考え方:一時変数を使う

ポイント

  • 入れ替えには 3つ目の変数(作業用) を使う
  • これは試験でも、実務でも、教育現場でも王道

擬似コードでの正しい書き方

例:変数 A と B の中身を入れ替える

TEMP ← A
A ← B
B ← TEMP

処理の流れ

手順処理内容ABTEMP
初期状態1020
TEMP ← A102010
A ← B202010
B ← TEMP201010

👉 元の値を失わずに入れ替え成功


図で考える(イメージ)

最初
A ──▶ 10
B ──▶ 20

① TEMP ← A
TEMP ──▶ 10

② A ← B
A ──▶ 20

③ B ← TEMP
B ──▶ 10

基本情報技術者試験での出題ポイント

よく問われる観点

  • 擬似コードの 代入の向き(←)
  • 処理順序を正しく追えるか
  • 一時変数の役割を理解しているか

試験対策のコツ

  • 「入れ替え=一時変数が必要」と即座に思い出す
  • 途中状態を書き出して追う癖をつける
  • 頭の中だけで処理しようとしない

C#などの実際の言語との対応(参考)

擬似コードで理解できていれば、

実際の言語に置き換えるのは簡単です。

int temp = a;
a = b;
b = temp;

👉 考え方は擬似コードと全く同じ


まとめ

  • 変数の入れ替えは 超重要な基礎アルゴリズム
  • 直接代入ではなく 一時変数を使う
  • 擬似コードで理解できれば、どの言語でも応用可能
  • 科目Bでは「読める・追える」ことが最優先

訪問数 69 回, 今日の訪問数 1回