条件分岐コード 2. else ifを使う

複数の条件を組み合わせるelse ifという書き方が登場するステージです。
elseは「もしくは」みたいな意味の言葉です。出題文中のコードは以下のようなものですね。

こちらも日本語にしてみると、

という感じになります。コードを実行してみるまで、そこにスイッチがくるか宝石がくるかわからない時にこうする必要が出てきます。

ステージとしては、前方の2コマを順にチェック&操作するのでfor文を使って繰り返します。

ところで、下のようにelseを使わないでif文を2回書いたらどうなの?と思うかも知れません。

一応「else」を習うためのステージなのでelseを使う方がより模範的な回答ですが、このステージはどちらでもクリアできます。しかしこの2つの書き方は厳密には意味が違います。どう違うと思いますか?答えは追々。

条件分岐コード 1. スイッチを調べる

前章までで練習した「同じ処理を繰り返す」ということはコンピュータの得意分野でした。あらかじめわかっている作業内用をプログラムに落とし込んでおけば、毎回自動でそれをやってくれて我々は楽をすることができます。しかし実際にプログラミングで自動化したい処理の中には「あらかじめわかっている」ことばかりとは限りません。そこで、その作業をしようと思った時の状況に応じて処理を切り替えられる「判断力」をプログラムにもたせることができたら、ということになります。我々も日常的に「雨だったら傘を持っていく」のようにある特定の状況を「条件」とし、行動を変える(分岐する)、ということをします。この「条件」によって処理を「分岐」するのがこの章のテーマです。

使うのはif文で、出題文にある

は、日本語にすると

という意味になります(ifは「もしも」という意味です)。こう書けばなんとく意味が見えてきませんか?
文法としては、

という形です。func文やfor文と同じく、{}でさせたい処理をサンドします。

ステージの作りは一本道で、途中スイッチが3つ連続で並んでいますが、オン(open)なものとオフ(Closed)なものがあります。まずはなにもしないで「コードを実行」してみてください。なんとそれぞれのスイッチの状態が変化します。toggleSwitchはオンのものはオフに、オフのものはオンにするので、どれとどれがオフかあらかじめわかっていないと、全てをオンにすることができません。
そこで活躍するのが条件分岐をするif文というわけです。「判断したい条件」の書き方は色々あるのですがこのステージでは出題分にあるように単純に「isOnClosedSwitch」としておけばOKです。()はいりません。
ということで、いままで通り3つのスイッチの上でtoggleSwitch()するコードを書き、そのtoggleSwitchをif文で囲む形に変形してみましょう。こうすることで、閉スイッチ上の時だけtoggleSwitch()が実行され、開スイッチなどそれ以外の場合は{}はスキップされるので実行されません。結果として、開スイッチはそのまま、閉スイッチはオンに変更され、全てのスイッチがオンになります。その場その場で判断するので、コードを実行する度に閉スイッチの場所がかわっても柔軟に対応できるのです。