理解とはなんでしょうか?
例えばオレンジ色の果物があります。何かわかりますか?と聞かれた時に「みかん」と答えました。確かに「みかん」であり正解ですが、その果物について深く理解しているかどうかは別です。
例えば、「みかん」とはどういう果物なのか、どのように育つのか、なぜオレンジ色なのか、どんな栄養が含まれているのか――これらを知っている人と、ただ「みかん」と名前を知っているだけの人とでは、理解の深さが異なります。
プログラミングでも同じことが言えます。コードが動く結果だけを知っているのか、それともその仕組みや理由まで理解しているのか。この違いが本当の「理解」を生み出します。
私たちが目指すのは、ただ「知っている」だけでなく、「なぜそうなるのか」を説明できる力をつけることです。これから紹介するプログラムを使って、自分の理解がどのレベルにあるのかを確認してみましょう!
サンプルコード
次のコードについて、理解の段階を客観的に見ていきましょう。
for (let i = 0; i < 9; i++) {
console.log("こんにちは");
}理解度1
「こんにちは」を表示するプログラムかな?
理解度2
「こんにちは」を10回表示する。
理解度3
for ループを使って、10回「こんにちは」を繰り返し表示する。
理解度4
変数 i が0から始まり、条件 i < 9 を満たす間、1ずつ増加しながらループが進む。つまり、i の値が9になるとループが終了する。
理解度5
プログラムを応用して、例えば「1回目:こんにちは」「2回目:こんにちは」のように番号付きで表示することができる。
for (let i = 0; i < 9; i++) {
console.log((i + 1) + "回目:こんにちは");
}理解度6
セミコロン ; は、それぞれの命令や条件を区切るために使われていて、このコードでは、for の3つの部分(初期化、条件、更新)を区切っている。
理解度7
let は変数 i を宣言するためのキーワード。forの初期化で宣言した変数i のスコープ(有効範囲)はループの中だけに限定される。
理解度8
このコードを他のプログラムや概念(例えば、ネストされたループや条件分岐)と組み合わせて新しい機能を作り出すことができる。例:以下のコードは、1回目から3回目の間だけ特別なメッセージを表示します。
for (let i = 0; i < 9; i++) {
if (i < 3) {
console.log((i + 1) + "回目:特別なこんにちは");
} else {
console.log((i + 1) + "回目:こんにちは");
}
}理解度9
このコードを他の方法(例えば、while ループ)で書き換えることができる。
(ループの基本的な動作を深く理解している)
let i = 0;
while (i < 9) {
console.log("こんにちは");
i++;
}