【情報Iの壁】配列の「添字は0から」が腹落ちしない人へ、現役エンジニアが教える理由
こんにちは!オンライン家庭教師のこばやしです。普段はフリーランスのITエンジニアとして働きながら、中高生に「情報I」「理系数学」「英語」を教えています。
プログラミングで「配列」を学ぶとき、多くの人が最初につまずくのが「添字(そえじ)は0から始まる」というルールです。1番目のデータなのに、添字は0。なんだか気持ち悪くて、理由も分からないまま暗記でごまかしている、という方も多いのではないでしょうか。
でも、この0始まりには、ちゃんとした理由があります。理由が分かれば、「気持ち悪い」は「なるほど」に変わります。今日はその理由を、現役エンジニアの視点からお伝えします。
■ 添字は「順番」ではなく「位置」を表している
まず、大きな誤解を解きましょう。添字は「何番目か」という順番ではなく、「先頭からどれだけ離れているか」という位置を表しています。
先頭のデータは、先頭から「0だけ離れている」。だから添字は0。2番目のデータは「1つ分離れている」から添字は1。こう捉えると、0始まりが急に自然に感じられませんか。「0番目の部屋」だと思えばいいのです。
■ マンションの部屋番号で考えてみる
イメージしやすいように、マンションで考えてみましょう。ある基準の部屋を「0号室」とし、そこから何部屋離れているかで番号をつける、というルールです。
基準の部屋そのものは「0部屋分離れている」ので0号室。隣は1号室、その隣は2号室。コンピュータは、データを置いた先頭の場所を基準にして、「そこから何個分先か」で位置を計算しています。だから0から数えるのが、むしろ都合がいいのです。
■ これは「設計上の必然」であって、意地悪ではない
「わざわざ分かりにくくしているのでは?」と感じるかもしれませんが、そうではありません。コンピュータが内部でデータの位置を計算する仕組みを考えると、0から始めるほうが計算がシンプルになる。これは意地悪でも偶然でもなく、設計上の必然なのです。
理由を知ると、ただのルールが「よくできた仕組み」に見えてきます。
■ 現場でも、0始まりは「共通言語」
私が携わってきたシステム開発の現場でも、配列の添字が0から始まるのは当たり前の共通ルールでした。世界中のエンジニアが、この0始まりを前提にコードを書いています。
つまり、これは試験のためだけのローカルルールではなく、プロの世界の共通言語です。今のうちに体に染み込ませておくと、将来プログラミングを続けるときにも必ず役に立ちます。
■ 「なぜそうなるか」を知れば、暗記は要らない
「0から始まる」とただ覚えるのと、「位置を表しているから0から」と理解するのとでは、記憶への残り方がまるで違います。理由を知れば、暗記に頼る必要はなくなります。
私の授業では、こうした「気持ち悪いルール」ほど、その裏にある理由を大切にします。生徒が「なるほど、そういうことか!」と腑に落ちる瞬間を、何より大事にしています。
・「添字が0から始まるのが気持ち悪い」という方
・「暗記でごまかしている」という方
・「配列を仕組みから理解したい」という方
そんな方は、ぜひ一度体験授業にいらしてください。現役エンジニアと一緒に、「気持ち悪い」を「なるほど」に変えていきましょう!
【プロフィール】
こばやし|納得感を大切にするフリーランスエンジニア
北海道大卒。約10年間にわたり金融決済システムなどの基幹開発に携わった後、フリーランスのエンジニア・IT講師として独立。企業の新人IT研修のメイン講師も務めるプロが、「仕組みから理解する」論理的な指導を行います。
この先生のおすすめコース
- 共通テストで「情報I」が必要な国公立大・難関私大志望の方
- 「プログラミング」や「データの分析」が苦手で、暗記に逃げている方
- 将来IT系に進みたい、または現役エンジニアから実学を学びたい方
このブログに関連するオンライン家庭教師はこちら
情報/プログラミングのおすすめの指導コース
- 国公立大学への進学を考える高1生以下の方
- 新科目の追加に不安な方
- 情報系を専攻する大学・学部に進学したい方
- 3DCG作成に興味がある方
- 3DCGゲームを作ってみたい方
- 楽しく学びたい方
- 3DCG作成に興味がある方
- 3DCGゲームを作ってみたい方
- ゲーム映像業界に興味がある方
- 『情報I』の勉強で、どこから手をつけていいか判らない人
- 共通テスト過去問をみても解けない人
- 国公立大志望(情報が必須)の人
- 情報Ⅰに苦手意識がある
- 効率重視で点数を伸ばしたい
- 苦手を的確に指摘・言語化し、短期間で伸ばしてくれる先生