Antoine.st Exit From Flow

Do you use Goto?

x が y であるときに実行。であるなら、y でないときは、実行しないとなるわけです。


  if (x == y) 
  {
    // some process
  } 

流れからみると、以下のように書くこともできます。


  if (x != y)
  {
    retrun ;
  }

  // some process

前者の書き方だと、ネストが深くなったときに嫌な感じです。ということで、ときたま後者の書き方をすることもあるんですが、ふと考えてみると、これってわかりにくいのではなかろうかと...。return しているのに気づかなくて、「変だな? xxx の処理が実行されていない」ということもありがちです。


  Public Sub Hoge()

    If Not x = y Then
      Goto NextProcess:
    End If

  NextProcess:
    ' next process

  End Sub

それなら、これの方がわかりやすい? ... そんなことはないですね。はい。