【数学の罠】プログラミングの「=」は等しいじゃない? 情報Iの「比較演算」でつまずく2つの壁
こんにちは!オンライン家庭教師のこばやしです。
普段はフリーランスのITエンジニアとしてシステム開発を行いながら、中高生向けに「情報I」「理系数学」「英語」を指導しています。
前回の記事で、プログラミングの「=」は「等しい」ではなく「右のものを左の箱に入れる(代入)」という意味だとお話ししました。
では、いざコンピュータに「AとBは等しいですか?」と聞きたいときは、どうすれば良いのでしょうか?
今日は、情報Iのプログラミングで高校生が必ずつまずく「比較演算」の2つの壁について、現役エンジニアがわかりやすく解説します!
■ 壁その1:「等しい」は「==」を使う
数学では、左辺と右辺が等しいことを「a = b」と書きますよね。
しかし、情報Iのプログラミングでは、この書き方はエラーになります。なぜなら、先ほどお話しした通り「=」はすでに「代入(箱に入れる)」という超重要任務で使われているからです。
そこで、プログラミングでは「等しい」ことを表すために「==(イコールを2つ並べる)」という記号を使います。
a = b (bをaの箱に入れなさい)
a == b (aとbは等しいですか?)
全く意味が違いますよね!
また、「等しくない(ノットイコール)」は、数学の「≠」という記号がキーボードで打ちにくいため、プログラミングでは「!=」という記号を使います。(! は「否定」を表すマークです)
数学が得意な人ほど、うっかり「=」を1つだけ書いてしまってバグ(エラー)を起こすので、ここは最初の要注意ポイントです。
■ 壁その2:結果は数字ではなく「Yes / No」で返ってくる
比較の記号(==, >, < など)を覚えたら、次の壁が待っています。
例えば、プログラミングで 「5 > 3」 という比較演算を実行したとします。この「結果」はどうなるでしょうか?
数学の授業だと「ただの不等式だね」で終わってしまいますが、プログラミングでは、この式自体が「True(真)」または「False(偽)」という結果(データ)を生み出します。
ここが直感的に分かりにくく、高校数学の「命題と条件」の単元で挫折してしまった人にとっては、アレルギーが出やすい部分です。
難しく考える必要はありません。比較演算とは、コンピュータに対する「Yes / No クイズ」だと考えてください。
あなた:「ねえねえコンピュータ、5は3より大きいって合ってる?」
コンピュータ:「はい、合ってます!(True)」
あなた:「じゃあ、10と10は等しくない(10 != 10)?」
コンピュータ:「いいえ、違います!(False)」
このように、比較演算の結果は常に「True(真)」か「False(偽)」のどちらかになります。
■ なぜ「True / False」が必要なのか?
では、なぜわざわざこんなクイズを出すのでしょうか?
それは、この後に学ぶ「もし〜なら(条件分岐:if文)」で絶対に必要になるからです。
「もし(所持金 > 1000円)が True なら、ランチを食べる」
「もし(パスワード == "1234")が False なら、エラーを出す」
現場のエンジニアも、毎日この「True」と「False」を使って、システムがどう動くかの交通整理をしています。
■ 数学の「命題」も、情報Iを経由すれば怖くない
情報Iのプログラミングを学ぶと、「True(真)」と「False(偽)」が単なる数学の小難しい用語ではなく、システムを動かすための具体的なスイッチであることが体感できます。
ここを理解すると、不思議と数学の「命題」の単元もスラスラ解けるようになりますよ。
私の授業では、このように「情報I」と「数学」の繋がりを意識しながら、暗記に頼らない論理的な考え方を指導しています。
「情報Iの記号がごちゃごちゃになってきた」
「数学の命題や論理がどうしても苦手」
そんな方は、ぜひ一度体験授業にいらしてください。 現役エンジニアと一緒に、コンピュータとの正しい「会話の方法」をマスターしましょう!
【プロフィール】こばやし|納得感を大切にするフリーランスエンジニア
北海道大理系卒。現役のITエンジニアとして活動しながら、オンライン家庭教師として中高生に「情報I」「数学」「英語」を指導中。企業の新人IT研修のメイン講師も務めるプロが、「仕組みから理解する」論理的な指導を行います。