R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

do~while の違和感

do~while

を書く場合、以下のように書きます。
しかし、この書き方って、どうも好きになれません。


do {
  this.HogeHoge();
} while(this.IsContinue());


ブロックで括った後に判定式が来るのが、昔から何となく違和感を感じるんですよね。


do
{
  this.HogeHoge();
}
while(this.IsContinue());


この書き方なら、あまり気にならなそうですけど、do~while() が 1 文であることがわかりにくそうです。


do { this.HogeHoge(); } while(this.IsContinue());


do { this.HogeHoge(); }
while(this.IsContinue());


do { this.HogeHoge(); }
  while(this.IsContinue());


いっそ、以下のように書けてしまえばいいのに。


dowhile(this.IsContinue()) {
  this.HogeHoge();
}


って、ラムダ式を使えばできますね・・・


dowhile(
  () => this.IsContinue(),
  () => this.HogeHoge()
);


うーん、これもなんだかなぁ。


do {
  this.HogeHoge();
} while(this.IsContinue());


結局、この書き方に落ち着くのか・・・w

投稿日時 : 2009年1月7日 14:46

Feedback

# re: do~while の違和感 2009/01/07 17:16 επιστημη

loopの継続条件をloopのケツで判断するから条件をケツに書くわけで、
この条件をどっか他んトコに書いたら余計に違和感ありません?

# re: do~while の違和感 2009/01/08 10:23 R・田中一郎

確かに違和感はあります。

dowhile(継続条件) {実行文}

しかし、上記は「2 ループ目から先頭で判定する」と考えれば、あまり違和感がないかもしれません。


# re: do~while の違和感 2009/01/08 15:27 出水

do~while使ったことないです
いつもこんな書き方ですね
for(;;){
this.HogeHoge();
if (this.IsEnd())break;
}

やねさんの本にも書いてたけど、ループを継続する条件を考えるより
ループが中断する条件のほうがわかりやすい、ってのに基づいてたりします

# re: do~while の違和感 2009/01/09 9:52 R・田中一郎

for(;;)なコードってよく見かけるけど、僕は while(true) 派ですね。
まぁ、何が違うということもないのでしょうけど^^;

ループの中断条件の方がわかりやすいという意見は、僕も賛成ですが、正確には「わかりやすい場合が多い」だと思います。

# OWFruoXipjTZOHco 2011/12/12 18:51 http://www.birthcontrolremedy.com/birth-control/cl

Hello! How do you feel about young composers?!...

# mubwJjEiVfZSiD 2011/12/16 0:30 http://www.upscalegallery.com/

Stupid article..!

# bPOwDFGqxo 2011/12/29 19:36 http://www.legalobjective.com/personal-injury-and-

Sent the first post, but it wasn`t published. I am writing the second. It's me, the African tourist.

タイトル
名前
Url
コメント