日下部陽一(void)さんと遊ぼう(4)

いまにして思えば、次の日下部さんの返答は、日下部さんが私のもとの書き込みを誤読した可能性はある。返答が来るまでの時間が短すぎる。あまり元の文章を丹念に吟味したわけではないのではないかと思ってしまう。それではご覧いただこう。衝撃の返答文を。


2006年11月20日 08:41 Kusakabe


> さすが、よく見てはりますね。

どこが!

> continueの動作に関してforとwhileが等価ではないことはもちろんわかっちょりますが、
> whileのほうが短くなるケースなんてありますか

ありますよ。
では、conitune以外で、forとwhileが等価でない箇所は
あと、どことどこか知ってますよね?

> とは等価なので

st1に「何が入るか」によるでしょ。


> whileで書くと短くなるケースがあるというのは全くのデマじゃない

whileのほうが短くなるパターンありますよ。
典型的な例を考えてみてください。
少しは練習になることでしょう。

continueがconitune(コニチューン?)になっているのはご愛嬌あいきょうとして、continueの動作以外でforとwhileの違いなんてあるのだろうか?


日下部さんは


while(exp1) { st1 st2 exp2; }

for(;exp1;) { st1 st2 exp2; }
が等価では無いとおっしゃるわけである。st1に “何か” がくればこの等価性が崩れると言うのである。これには驚いた。初心者のたわごとならいざ知らず、C/C++の翻訳記事をも手掛ける天下の日下部さんが言うからには、でたらめと言うわけでもないのだろう。一体何なのだ、上の二つが等価で無いとは!


あわてて自分に見落としが無いか、C/C++の規格文章などを読み返すが、全く糸口がつかめない。
(つづく)