メソッドを書く意味の一部かも? | demicadeのブログ

demicadeのブログ

iPhoneアプリ開発素人のメモ的なブログです。

こんばんは、久しぶりのdemicadeです。


素人プログラマーとして活躍中です笑

ドラゴンボールでいえば、サイバイマン。スパ●タンXでいえばつかみ男くらいです。



ここ数日に得た知識の中で、なるほど!と思ったことがあったので一言。



いわゆるメソッドってあるじゃないですか。

それの作る意味というのか、そういうたぐいのものです。
たとえば、矢印のように流れていく処理があるとして、


IF(A=0 && B=0 && C=0){

  IF( 条件 ){

    --実際の処理--

  }


--実際の処理-- の部分がほんの2・3行ならこのままでも見づらくありません。

でも10行を超える場合や画面がスクロールしなければいけないようなものの場合、

{}の対応がどこからどこまでかわかりづらいですよね。

そういうときにメソッド化することで見やすくなるのは、みなさんご存知の通りです。

ですが、その時にもう一ついいことがあります。


メソッド化するとこんな感じでしょうか。

intに特に意味はありません。ほかに思いつかなかっただけです。


-(int)hanntei{

  IF(A=0 && B=0 && C=0){

    IF( 条件 ){

      --実際の処理--

      #

      #

      #

      #

      #

      #

      #

      #

      #      

      #

      #

      #

    }
  }


をメソッド化した際、やはり"実際の処理"が長かったとすると見にくいですね。

見やすくするための方法を考えてみると、そもそも"A=0 && B=0 && C=0"なら、

このメソッドを処理しなくていいんじゃないか?と気づきませんか。

であれば、こう書くこともできるんです。

-(int)hanntei{

  IF(A=0 && B=0 && C=0){

   return 0;

  }

    IF( 条件 ){

      --実際の処理--

      #

      #

      #

      #

      #

      #

      #

      #

      #      

      #

      #

      #

    }

 


returnして、メソッドを飛ばしてしまうんですね。結果は一緒です。


これはベタ書きだと、returnしても戻る先がないので、

長いif文をまたいで入れ子にしなければならなくなってしまいます。


逆にメソッドを呼び出すところで、IFで判定にしてしまう手もあると思います。

じゃあそれとこれが何が違うのかと突っ込まれると、

そこまで理解が進んでないので、それがわかった時にまた書きたいと思います。


こんなところにもメソッドで切り出す意味があるんだと思いました。

みなさんの参考になれば!