比較演算
ネタ元は、R・田中一郎さんのところ。
(わんくま同盟の各 blog は、 RSS 定期チェックしていたりします。参考になるところがとても多いので。)
Perl だと、全ての文は整数型を返しますが何か? ……とか云うのは置いといて、この手の話は、代入演算子(多くのプログラム言語で「 = 」が使われる)と並んで、プログラムの世界に生きていない方にとって理解しにくいものの代表格な気がします。
まぁ、詰まる所、「そういうものだ」と覚えるのが一番手っ取り早いのではないかと。
(↑身も蓋もない。。。しかもそれで理解出来るなら、誰も苦労しないと思う)
でも、
if (i > 5) { Method(); }
位なら、頭から読み下せばいい(⇒「もし i が 5 より大きければ Method() を実行する」)ので、それ程苦労しないと思うのだけれども。。。
(この辺は、「 IF A THEN B 」形式の方がもっと自然)
……ん? もしかして、この教え方(頭から読み下す)が更に判らなくさせてる?
まぁ、それはそれ。(ぉ
ところで。(実はここからが本当に言いたかった事)
記事中に気になる記述が 2 つほどありました。
まずひとつめ。
bool b = (i > 5);とすると、b に true が入る
という件。
前後を見ても、「 b に true が入る」という根拠がどこにも無いのですが。。。(「 i に何が入っているか」が書かれていない為、これだけでは b は不定)
なので、文末の
bool b = (i > 5); if (b) { Method(); }
についても、 Method() が実行されるかどうかは判らない事になります。
そしてもうひとつ。
while(true) { Method(); }
……これ、無限ループでは???
( Method() の中で exit していれば別ですが)