コウです、よろしくお願いします!
「ゼロからプログラミングを始める」人に役立つ情報を発信しています!
今回からは、「条件分岐コード」のユニットに入っていきます!
こうゆう条件の時は、こうやって動いてね!という指示を出していくことになります
それでは、Day22「スイッチを調べる」の解説になります

解答例と解説
初めに解答例と解説です!
解答例
コードの解答例は以下のようになります。

3回調べられるように、
if isOnClosedSwitch { toggleSwitch() }
が3回分入っています!
解説
上記のコードを実行した結果がこちらになります。
Byteがスイッチの上に行った時に、光っていない場合にはスイッチを切り替えて、光っている時には何もしていませんよね。
このコードが書けていれば何度実行してスイッチの場所が変わってもクリアできます!
今回のポイント
スイッチがランダムに切り替わる
今回のステージはコードを実行のボタンを押すと、
光っているスイッチとそうでないスイッチの場所と数が変わります。
実際にやってみます↓
はじめはByteから見て奥のひとつだけが光っていましたが、
実行すると手前の2つになりました。
さらにもう一度実行すると、奥の2つが光りました。
なぜランダムで切り替わるのか
例えば、奥のひとつだけが光っている状態で考えてみます。
その場合これまでのようにクリアしようとすると、コードは以下のようになります。

これだけでクリアできてしまう簡単なステージのように見えますよね。
しかしこのコードを実行すると、
上に書いたように手前の2つだけが光っている状態からByteが動き始めます。
そうすると、真ん中の1つだけが光っている状態になります。
これではクリアにはなりません。
そこで今回から登場するif文の出番というわけです!
if文を使って、ランダムに変わる状況にも対応できるようなコードを書く練習をするということですね!!
if文を使ってスイッチが光っているかどうか確かめる
それでは、if文の使い方を説明文を見ながら確認していきましょう!

例として、「if isOnClosedSwitch { toggleSwitch() } 」とあります。
{ }の前を直訳すると「もし光っていないスイッチの上にいるなら」になります。
そしてそれに続く命令が{ }の中の「toggleSwitch() 」です。
全てつなげると、
「もし光っていないスイッチの上にいるなら、スイッチを切り替える」になります。
これを使えば、スイッチが光っていない時だけスイッチを切り替えることができるという訳です!!
ステージ攻略「スイッチを調べる」
攻略
ステージを攻略していきましょう!

「スイッチ1/3」ですが、この数字は先ほど見た通りコードを実行すると変わります。
ここは気にせず、3個全てのスイッチを調べられるようにコードを書いていきます。
具体的には、
「2マス進む→スイッチを調べる→1マス進む→スイッチを調べる→1マス進む→スイッチを調べる」
となります。
まとめ
初めてのif文はいかがだったでしょうか。
もし〜というのは英語と同じなので、考えやすいですよね。
また、isOnClosedSwitchというもしの後に続く〜ならの部分も用意されているので、
コードを書くのが楽ですね!!
- if文は、「もし〜ならこうして欲しい」という指示を出したい時に使用する
- if文を使うことで、して欲しい場合として欲しくない場合を分けることができる
次回はDay23「else if を使う」でお会いしましょう!ではまた!!
