【中学技術】変数と代入とは?代入の考え方と例題2問

はじめに

プログラムの問題で「最後の値はいくつですか」と聞かれて、手が止まってしまったことはありませんか。
テスト前に見直しておきたいのに、どこから手をつければいいのか分からない、という声もよく聞きます。

でも安心してください。この手の問題は、変数と代入という二つの考え方をつかめば、ほとんどが「順番に追うだけ」で解けるんです。
変数は、値を入れておく名前つきの箱。代入は、その箱に値を入れる命令です。
この記事では、箱のイメージから始めて、値が変わっていくようすの追い方、そして名前のつけ方や入れかえ、よくある失敗までを、例題つきでていねいに整理します。

動画で見たい人は、記事の最後にある動画もどうぞ。
休んだ授業の学び直しや、定期テスト前の確認にも使えますよ。

変数と代入を3つの順で整理する

変数と代入は、順番に整理すると迷いません。
まず「変数とは何か、代入とは何か」という意味をつかみます。
次に、値がどう変わっていくかを追う練習をします。
最後に、名前のつけ方・入れかえ・失敗の3つを確認すれば、テストの例題まで手が届きます。

今日の3ステップ
  • 意味:変数は名前つきの箱、代入は右の値を左の箱へ入れる命令。
  • 値の追い方:一行ごとに箱の中身を書き出し、上書きと更新を確かめる。
  • 名前・入れかえ・失敗:中身が分かる名前、予備の箱、初期化忘れを押さえる。

ポイント1:変数は名前のついた箱

まずは言葉の意味から始めましょう。
変数は「値を入れておく、名前のついた箱」で、代入は「その箱に値を入れる命令」です。
この2つを箱のイメージで覚えるだけで、あとの内容がぐっと楽になります。

HeatKeep
HeatKeep

変数と代入の意味のポイントを紹介します

なぜ値を覚えておく箱が必要なのか

ゲームで敵を倒すたびに、得点が増えていきますよね。
あの得点は、遊んでいる間ずっとどこかに覚えておかないと、次に何点足せばいいのか分からなくなってしまいます。
プログラムも同じで、計算の途中の結果や入力された数を、あとで使えるように置いておく場所が必要です。
その置き場所が変数です。
値を入れておく箱だと考えると、イメージしやすくなります。
しかも箱には名前がつけられるので、名前を呼ぶだけで、中身を取り出したり入れかえたりできるんです。

もし変数がなかったら、「80」「95」といった数を、プログラムのあちこちにそのまま書くことになります。
点数が変わるたびに、書いた場所をすべて探して直さなければなりません。
変数を使えば、点数という名前の箱の中身を一か所入れかえるだけで、全体が新しい値で動きます。
プログラムを短く、直しやすくするための工夫でもあるんです。

変数を支える名前・値・種類

変数は、名前・値・種類の三つで考えると整理しやすくなります。
名前は箱に貼るラベル、値は箱の中身です。
種類は、数を入れるのか文字を入れるのかという区別で、点数なら数、名前なら文字を入れます。
数と文字では、できる計算がちがいます。
たとえば数なら足し算ができますが、文字を足し算することはできません。
だから「この箱には何を入れるのか」を最初にはっきりさせておくことが、まちがいを減らす第一歩になるんです。
テストでも、種類のちがいを聞かれることがあります。

名前のついた箱に値を入れるイメージの模型

ここで一つ注意があります。
名前は、箱の外側に貼るラベルにすぎません。
ラベルを貼りかえても、中身の値は変わりません。
逆に、値が変わっても、ラベルはそのままです。
「名前」と「値」を別々に考えるくせをつけておくと、あとで出てくる更新の問題で、混乱しにくくなります。

代入は右から左へ入れる命令

代入は、右にある値を左の箱に入れる命令です。
たとえば、点数イコール80と書くと、点数という箱に80が入ります。
大切なのは向きです。
書いてある順に左から読むと、つい「点数は80に等しい」と考えたくなりますが、プログラムでは右の値を先に決めて、それを左の箱へ運びます。
右から左へ流れる矢印をイメージしておくと、右と左を取りちがえるミスがぐっと減りますよ。
問題文で代入の式を見たら、まず指で右から左へなぞる習慣をつけてみてください。
それだけで、読みまちがいがかなり防げます。

代入のポイント
  • 左は箱:入れ先になる変数の名前を書く。
  • 右は値:数や計算式など、入れる中身を書く。
  • 向きは右から左:右を先に決めて、左の箱へ入れる。

式の右側には、数だけでなく、計算式や別の変数も書けます。
たとえば、合計イコール点数たす10と書けば、点数の中身に10を足した結果が合計に入ります。
このとき、点数の箱の中身はそのまま変わりません。
取り出して計算するだけで、箱の中身が減るわけではないんです。

ここまでのまとめです。
変数は名前つきの箱、代入は右の値を左の箱へ入れる命令。
この二つが分かれば、次は「値が変わっていくようす」を追う練習に進めます。

ポイント2:値の変わり方を追う

変数と代入の問題でいちばん大事なのは、「いま箱の中身はいくつか」を一行ずつ追いかけることです。
計算が得意かどうかよりも、順番に書き出す習慣のほうが、点数に直結します。

HeatKeep
HeatKeep

値の変わり方のポイントを紹介します

イコールは「等しい」ではなく「入れる」

プログラムのイコールは、数学の等号とは意味がちがいます。
数学では「左と右が等しい」と読みますが、プログラムでは「右の結果を左の箱に入れる」という合図なんです。
だから、合計イコール合計たす1という式も、ふつうに書けます。
数学なら成り立たない式ですが、プログラムでは、まず右側を今の値で計算し、その答えを左の箱に入れ直す、という意味になります。
この読み方に慣れることが、更新を理解する近道です。
最初は変な式に見えても、入れる命令だと思えば自然に読めますよ。

イコールの読み方
  • 数学の=:左と右が等しいという関係を表す。
  • プログラムの=:右を計算して、左の箱へ入れる命令。
  • 合計 = 合計 + 1:今の中身に1を足して、同じ箱へ入れ直す。

試しに、合計の中身が5のときを考えてみましょう。
合計イコール合計たす1を実行すると、まず右側が5たす1で、6と決まります。
その6が、合計の箱に入ります。
実行前は5、実行後は6です。
このように「実行前」と「実行後」を分けて考えると、同じ名前が左右に出てきても、まったく混乱しません。

新しい値を入れると前の値は消える

箱には、値をひとつしか入れられません。
新しい値を入れると、前の値は上書きされて消えてしまいます。
例題で確かめましょう。
aに3を入れ、bにaたす2を入れ、そのあとaに10を入れます。
このとき最後のbは、5のままです。
bに入れたのは、そのときのaの値3に2を足した5で、あとからaを変えても自動では書きかわらないからです。
箱の中身は「入れた瞬間の値」だと覚えておきましょう。
消えた値は、あとから呼び戻すことができません。
残したい値は、別の名前の箱に入れておく必要があります。

テストでは、この問題がひっかけとしてよく出ます。
「aを10にしたのだから、bも12になるのでは」と考えてしまう人が多いんです。
そんなときは、一行ごとに箱の中身を書き出してみてください。
aが3、bが5、そしてaが10。
bの欄は5のまま変わりません。
目で見ると、答えがはっきり分かりますよ。

更新と初期化で合計を求める

点数の合計を求めるときは、まず合計の箱に0を入れて始めます。
これが初期化です。
そのあと、点数が出るたびに、合計イコール合計たす点数を繰り返します。
たとえば30、40、50を足すなら、合計は0、30、70、120と変わっていきます。
最初に0を入れておかないと、箱の中に前の値が残っていて、答えがずれてしまうことがあります。
足す前の準備として、初期化をかならず忘れないようにしましょう。
箱を空っぽの状態から始めると考えると、イメージしやすいですよ。

手順を一つずつ進めて値の変化を確かめるボード

ボタンを押した回数を数えるときにも、同じ形を使います。
回数イコール回数たす1を、ボタンが押されるたびに実行すれば、箱の中身が1ずつ増えていきます。
この「今の値をもとに新しい値をつくって入れ直す」使い方を、更新といいます。
合計もカウンタも、仕組みは同じ。
一つ分かれば、ほかの問題にもそのまま使えます。

値の追い方のコツは、一行ごとに箱の中身を書き出すことです。
表にして、変数ごとに欄をつくると、見まちがいが減ります。

ポイント3:名前・入れかえ・失敗

変数の使い方がわかったら、最後は「まちがえにくく使う工夫」です。
名前のつけ方、値の入れかえ、よくある失敗の3つを押さえておけば、テストの落とし穴をほとんど避けられます。

HeatKeep
HeatKeep

名前・入れかえ・失敗のポイントを紹介します

中身が分かる名前をつける理由

変数の名前は、aやbでも動きますが、できれば中身が分かる名前にしましょう。
点数や合計といった名前なら、あとから読み返したときに、何が入っているのかすぐに分かります。
プログラムは書くより読む時間のほうが長いので、読みやすさはとても大切です。
もう一つ大事なのが、同じ名前は同じ箱をさすということです。
つづりが少しでもちがうと、別の箱として扱われてしまいます。
書きまちがいが、思わぬ答えのずれにつながるんです。
名前は、見た目で選ぶより、意味で選ぶのがコツですよ。

多くのプログラミング言語では、大文字と小文字も別のものとして扱われます。
たとえば「Score」と「score」は、別の名前です。
テストの問題文では、変数の名前がたくさん出てくることがあります。
似た名前に注意して、どの箱の話なのかを丸で囲みながら読むと、取りちがえを防げますよ。

値の入れかえに予備の箱を使う理由

aとbの中身を入れかえたいとき、aにbを入れるだけでは、うまくいきません。
aの元の値が上書きされて、消えてしまうからです。
そこで、予備の箱をひとつ用意します。
まず予備にaの値をあずけ、次にaへbの値を入れ、最後にbへ予備の値を戻します。
この三つの手順で、どちらの値も失わずに入れかえられます。
コップの水を入れかえるとき、空のコップを一つ使うのと同じ考え方です。
入れかえは、プログラムで並べかえをするときにも、よく登場する大切な技です。
この機会に、手順をしっかり覚えておきましょう。

入れかえの3手順
  • 手順1:予備 = a で、aの値を予備の箱にあずける。
  • 手順2:a = b で、aにbの値を入れる。
  • 手順3:b = 予備 で、あずけた値をbへ戻す。

手順の順番を変えると、値が消えてしまいます。
たとえば最初にaイコールbを実行すると、aの元の値はもう取り出せません。
入れかえの問題では、箱の中身を一行ずつ書き出して、最後にどちらの箱にどの値が入っているかを確かめましょう。
aが3、bが5なら、最後はaが5、bが3になれば成功です。

つまずきやすい3つの失敗

つまずきやすい失敗は三つあります。
一つ目は、初期化を忘れることです。
二つ目は、変数の名前を書きまちがえて、別の箱を作ってしまうことです。
三つ目は、イコールを「等しい」と読んでしまうことです。
どれも、うっかりでは片づけられないほど、よく起きます。
でも、原因が分かっていれば、見直しのときに確かめる場所が決まります。
テストで見直すときは、この三つを順番に指でなぞって確認してみてください。
確認する順番を決めておけば、焦っていても抜けが出にくくなりますよ。

プログラムの誤りを見つけて確かめる道具

プログラムの誤りを見つけて直すことを、デバッグといいます。
変数まわりの誤りは、初期化の有無、名前の一致、代入の向きの三点を見るだけで、かなりの数が見つかります。
むずかしい理屈より、確認の順番を決めておくことが、いちばんの近道です。

名前・入れかえ・失敗の3つが分かれば、変数と代入の基本はひと通りそろいました。
あとは例題を自力で追ってみるだけです。

テスト前の確認リスト

ここまで読んだら、テスト前にもう一度、次の項目を確かめてみましょう。
用語の意味、代入の向き、値の追い方、入れかえの手順。
どれも一つずつなら、むずかしくありません。
ノートに自分の言葉で書き出して、すらすら説明できるかを試してみてください。
説明できたら、その項目は身についています。
あやしい項目だけ、記事の該当する部分に戻って読み直せば十分ですよ。

テスト前にここだけ確かめる
  • 変数:値を入れておく、名前つきの箱だと説明できる。
  • 代入:右の値を左の箱へ入れる命令で、向きは右から左だと言える。
  • 上書き:新しい値を入れると前の値が消えることを、例で示せる。
  • 更新と初期化:合計を求める前に0を入れる理由を答えられる。
  • 入れかえ:予備の箱を使う3手順を、順番どおりに書ける。

よくある質問

変数の名前はaやbでも問題ないですか

結論から言うと、動きはしますが、中身が分かる名前にするのがおすすめです。
aやbでも、プログラムは正しく動きます。
ただ、問題が長くなると、aが何の値だったのか分からなくなって、読みまちがいが増えるんです。
点数や合計のように、中身を表す名前にしておけば、読み返したときにすぐ意味が分かります。
テストの問題文では、名前が単純なことも多いので、その場合は何を表す変数なのかを、余白にメモしてから追うと安心です。

イコールが数学とちがう理由が分かりません

プログラムのイコールは、等しいかどうかの判定ではなく、値を入れる命令だからです。
数学のイコールは「左と右が同じ」という関係を表しますが、プログラムは上から順に命令を実行していきます。
だから、合計イコール合計たす1のように、数学では成り立たない式が書けるんです。
迷ったら、イコールを「入れる」と読みかえてみてください。
合計に、合計たす1を入れる、と読めば、意味がすっと入ってきますよ。
この読みかえは、更新の問題を解くときにも、そのまま役に立ちます。
ぜひ今日から試してみてください。

例題を解くときのいちばんのコツは何ですか

一行ごとに、箱の中身を書き出すことです。
頭の中だけで追うと、上書きされた値を、つい古いまま使ってしまいます。
変数ごとに欄をつくった表を、ノートの余白に書いてみてください。
一行実行するたびに、変わった欄だけを書きかえていきます。
この方法なら、更新の問題でも、入れかえの問題でも、同じやり方で解けます。
時間はかかりますが、まちがいがぐっと減るので、結局いちばん早い方法なんです。
慣れてきたら、頭の中で追えるようにもなりますよ。

おわりに

変数と代入について、順番に見てきました。
変数は名前のついた箱、代入は右の値を左の箱へ入れる命令。
値は上書きされて、前の値は消えること。
合計を求める前には、初期化で0を入れること。
値を入れかえるときは、予備の箱を使うこと。
これだけ押さえておけば、テストの例題は、順番に追うだけで解けます。
まずは今日の例題を、もう一度ノートに書き出して、自分の手で追ってみてください。

変数と代入のまとめ図

ご視聴ありがとうございました。
この記事の内容を動画でも解説しています。
ぜひご覧ください。

中学技術の授業解説動画を、これからも投稿していきます。
役に立ったと感じたら、YouTubeのチャンネル登録をしてもらえるとうれしいです。

変数と代入の応用:テストによく出る3つの形

ここまでで、変数の意味と値の追い方は身につきました。次は、テストで出題されやすい少し発展した形を見ていきます。基本の考え方が分かっていれば、どれも落ち着いて解けますよ。

3つのポイント
  • ポイント1:右辺から計算:先に右側を計算して、あとで左へ入れる。
  • ポイント2:足していく:合計は、初期値から順に足して求める。
  • ポイント3:初期値に注意:最初の値を決め忘れると、答えがずれる。
HeatKeep
HeatKeep

応用問題のポイントを紹介します

「x = x + 1」は何をしている命令か

数学の目で見ると、「x = x + 1」はあり得ない式に見えますよね。でもプログラムでは、とても大切な形です。読み方は、右側の「x + 1」を先に計算し、その結果を左側の箱xに入れ直す、という手順になります。たとえばxが5なら、右側は6になり、xの中身は6に変わります。この形は、回数を数えたり、得点を一つずつ増やしたりする場面で何度も出てきます。

合計を足していく問題の解き方

「sum = 0」から始めて、「sum = sum + 3」「sum = sum + 5」のように並ぶ問題があります。これは、箱の中身に値を足し続けて、合計を作る流れです。解くときは、一行ごとにsumの値を表に書き出しましょう。0、3、8、というふうに、変わった所だけを順に追えば、最後の値が自然に出てきます。頭の中だけで計算しようとしないのが、まちがえないコツです。

初期値を決め忘れると起こる失敗

合計や回数を数える変数は、最初にいくつから始めるかを決めておく必要があります。これを初期値といい、多くの場合は0にします。初期値を決めないまま足し算を始めると、箱の中に前の値が残っていたり、そもそも値がなくてエラーになったりします。問題文に「最初に0を入れる」という行があるかを確かめるくせをつけておくと、記述問題でも理由を説明しやすくなります。

場面別のつまずきと直し方

変数と代入は、分かったつもりでも、細かい所でつまずきやすい単元です。よくある三つの場面を、直し方といっしょに紹介します。

数と文字列のちがいでまちがえる場面

プログラムでは、5と「5」は別のものとして扱われます。かぎかっこやクォーテーションで囲まれたものは文字列で、足し算をすると数ではなく、文字がつながってしまいます。たとえば「5」と「3」を足すと、8ではなく「53」になることがあります。答えが思ったと違うときは、その値が数なのか文字なのかを疑ってみましょう。問題文の書き方をじっくり見るのが、いちばんの近道です。

途中経過を表に書くと間違いが減る

値の変化を追う問題では、変数ごとに列を作り、行ごとに中身を書き込む表がとても役に立ちます。一行実行するたびに、変わった箱だけ書き換えます。変わらない箱は、前の値をそのまま写します。こうすると、どの行で値が変わったのかがひと目で分かります。テストの余白に小さな表を書く時間は、十秒もかかりません。見直しのときにも、考え方が残っているので、ミスを見つけやすくなります。

入れかえの手順を書き間違えたときの直し方

二つの値を入れかえるとき、「a = b」「b = a」の順に書くと、どちらも同じ値になってしまいます。最初の命令でaの元の値が消えるからです。直し方は、作業用の箱を一つ用意し、aの値を先に避難させることです。避難、上書き、戻すの三歩で考えると、失敗しません。自分で書いた手順が正しいか不安なときは、具体的な数を入れて、一行ずつ追ってみましょう。

生徒との絆を深め、理想の学級を実現させませんか?