ループ処理でループに入る前に1回呼んで、ループの中では末尾で処理したいような処理をコーディングするとき、
line = get_line(); while (ready()) { // 処理 // ... line = get_line(); }
このようにコードを書いている。
line = get_line();の部分が重複しており、
美しくない。
この例では1行だが、もう少し複雑な処理を書く場合もある。
for (line = get_line(); ready(); line = get_line()) { // 処理 // ... }
のような書き方をする場合もある。
これも微妙だ。
Androidのソースを調べていて、
goto文を使って重複を避けているコーディングをしていて、
この手も有りかと思った。
goto start_loop_here; while (framesReady == 0) { // 処理 // ... start_loop_here: framesReady = cblk->framesReady(); }
goto文否定派には、アレルギーがでそうなコードではあるが、
こだわりがなければいんじゃないかと思う。
Javaではgoto文がそもそもないので、上の2つのようなコーディングになるけどね。