2013年7月10日水曜日

if -else を教えてる時に・・。

早速ですが、このコードの間違いを探してください。
(答えは本文で)





とある機会で、初歩からJavaプログラミングを教える機会があって、
前でプロジェクターで映しながら、こうやったらこうできますよみたいなハンズオンで説明してたんです。


文の最後には「セミコロンが要りますよ」とか基本的なことから教えて、

四則演算や%も教えました。


次に
if文を教えようと、奇数偶数を判定するようなコードを書いて、前に写して、
受講者の方に「こんなコード書いてみてください」と言って書いてもらったのですが、


そこ、受講者の方から
「奇数の時も偶数ですと出るのですが・・・」と質問されました。


そこで受講者の方が書いたのは、最初に載せたコードです。


私はパッと見た時に、すぐに気づきませんでした。。










わかりやすいようにフォーマッタをかけたのは下のコードです。






else のあとのセミコロンがあるために、elseの中身が空文として扱われてしまうんですね。

そして そのあとの{}が空ブロックとして扱われてif-elseと関係なく実行されてしまうんですね。


今まで長くプログラミングをして来ましたが、
こういうコードが書けるのというが新しい発見でした。
(使いドコロは無さそうですが)

やっぱり、プログラミングを教えたりすると、たまにこういう発見をするのが嬉しいですね。


豆知識として是非。