【発展編】20-b コードで感じよう(2)

Q1. ☆問題☆

「else if」について、次の中から正しいものを全て選んでね。

  • else if は必ずいれなければならない
  • else if は使わなくてもよい
  • else if は3つまで使うことができる
  • else if はいくつでも使うことができる
  • else if のあとには else else if という書き方ができる

正解

  • else if は必ずいれなければならない
  • else if は使わなくてもよい
  • else if は3つまで使うことができる
  • else if はいくつでも使うことができる
  • else if のあとには else else if という書き方ができる

解説

「else if」は、「そうでなければ」のときに「もしも」を入れたいときに使うものだったよね。
だから、

「もしも超音波センサーの値が100より大きければ……」「そうでなければ……」

というプログラムを書きたければ、else if を使う必要はないよ。「そうでなければ」のときを、

「そうでないときは、もしも50より大きければ」

としたければ、else if を使えばよい。いくつでも使うことができるので、例えば10個くらい「else if」を使ってもいいんだよ。

else if のあとに else if を書くときに、else else if と書こうとした人もいるかもしれないけれど、そういう書き方はしないよ。

「もしも超音波センサーの値が100より大きければ……」
「そうでないときは、もしも50より大きければ……」
「そうでないときは、そうでなければもしも30より大きければ」

と、言葉にしてみると、変だとわかるよね。ワークブック11ページの図も参考にしてね。

Q2. ☆問題☆

switch – case – default について、次の中から正しいものを全て選んでね。

  • switch のあとに case は必ず書かなければならない
  • case は、書けないときには書かなくてもよい
  • case は10個までしか書くことができない
  • default は必ず書かなければならない
  • default の内容は必ず実行される

正解

  • switch のあとに case は必ず書かなければならない
  • case は、書けないときには書かなくてもよい
  • case は10個までしか書くことができない
  • default は必ず書かなければならない
  • default の内容は必ず実行される

解説

「case」は必ず書かなければならない。当たり前だよね。フローチャートを考えてみればすぐにわかる。ワークブックの12ページを見てみよう。

ただし、個数はとくに決められていない。3つでも10個でもかまわないよ。

そして、default も必ず書かなければならない。「そうでないとき」は何もしない、としたければいらないように思うかもしれないけど、そんなときにも「default」は書く必要があるんだ。

default は「そうでないとき」の内容だから、case の中身が実行されたときには、default の中身は実行されないよ。

Q3. ☆問題☆

ジャイロセンサーを使うために、 ev3.measureGyroAngle(on: .one) を使ったけど、エラーが表示されたよ。その原因として考えられるものを次の中から全て選んでね。

  • ジャイロセンサーが「1」につながっていない
  • ジャイロセンサーがこわれている
  • 正しく ev3.measureGyroAngle と入力できていない
  • ジャイロセンサーと関係ないところのプログラムがまちがっている

正解

  • ジャイロセンサーが「1」につながっていない
  • ジャイロセンサーがこわれている
  • 正しく ev3.measureGyroAngle と入力できていない
  • ジャイロセンサーと関係ないところのプログラムがまちがっている

解説

エラーが出たときには、いろいろな可能性を考えなければならない。ここにあげた「理由」は、どれも考えられるものだよ。

エラーが出たときに一番考えられるのは、命令をうちまちがえたということ。これは、すぐにわかることだ。

ジャイロセンサーを使おうとしてエラーが出たら、まずは「きちんとつながっているか」を確かめる必要がある。「1」につないでないのに
「on: .one」としたらエラーになるし、そもそもしっかりとコードが差し込まれていなかった、ということも考えられる。

「ジャイロセンサーを使おうとしてエラーになった」からといって、ジャイロセンサーのあたりだけを見ていてもまちがいが見つからないこともある。ほかのところがまちがってないかも、念のために確認したほうがよい。

それでもどうしてもまちがいが見つからなければ、ジャイロセンサーがこわれていることも考えられる。

「こんなことはないだろう」と考えずに、まちがいを探してみよう。