- ベストアンサー
javaの }{ の付け方
こんにちは。趣味のjavaを初めて半年が経とうとしています。 で、初歩的な質問になるのですが。。 javaで }{ の付け方がいまいち分かりません。 とりあえず、ifやらwhileのブロックなどの最初と最後につけとこうかな、 ぐらいでやってきてたんですが、複雑なプログラムを作るにあたって、 どの}がどの{に対応するのか分からなくなってきました。。 ○字下げなども行っているのですが、何か分かり易い工夫とかないでしょうか? ○慣れればすぐに「あ、この}はこの{に対応しているな」 といった感じで分かってくるものなのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
他の方もおっしゃられているように、個人的趣味が色々出てくると思います。 参考までに、自分の場合のコーディングの仕方を。 ・エディタに秀丸を使用。 #2の方も言ってらっしゃる通り、対応する {} に飛ぶ機能と、カーソル位置の括弧に対応する括弧が太字になって見やすい、という機能が便利です。 もちろん、様々なエディタに似たような機能はあると思います。 ・インデントの仕方をオールマンスタイルにする ・閉じる括弧に何を閉じたのかを書く ・最初に括弧を書いた時に、閉じる括弧も同時に書いておく(インデントもしておく) 上記のやり方でコーディングを行うと、以下のようになります。 if (条件1) { for (条件2) { while(条件3) { 処理 } // 条件3 END } // 条件2 END } // 条件1 END ELSE { 書きかけの処理 } // ELSE END (ちなみに、if 等の後に改行せずに { を書く書き方をカーネルスタイルと言うそうです) それぞれ好みや主義もあると思いますので、一意見として参考程度にどうぞ。 なお、 {} は、基本的に一つのクラスやメソッドであったり、一つの if 文の処理範囲であったり。直前の式の適用範囲をあらわす、みたいな形で用いる場合が多いと思います。
その他の回答 (3)
私の場合ですが、本来は、Javaとしては(というかオブジェクト指向的には?)良くないのでしょうが、あまりに{}の中が長くなる場合には、{}の中をprivateなメソッド化してしまいます。 if ( 条件 ) { 十数行以上; } else { 十数行以上; } の場合は、 if ( 条件 ) { ○○メソッド(引数...); } else { △△メソッド(引数...); } てな感じです。 まあ、Cの頃は関数化するのが当たり前だったので、あまり長くなる場合は、短くして、どこがどれに対応しているかをわかりやすくしているわけですが。 これは、あまりお勧めではないので、やらない方が良いでしょう。 本来は、条件文が長くなってしまう設計がおかしくて、もっと推敲すべきなのでしょうが。 それから、字下げで表現するとともに、 if ( 条件A ) { if ( 条件B ) { 長い処理; } else { 長い処理; } // if ( 条件B ) } // if ( 条件A ) などと、閉じるところに、何を閉じたのかを書くのも若干わかりやすくはなるかな、と思います。 また、ブロックの始まりにコメントを書いておいて、閉じるときには、そのコメントに対応するコメントを書いておくのもわかりやすくなるかと思います。 ここら辺は、好きずきだと思いますが。 以上は、ぱっと見てわかるような工夫ですが、#1に書かれているように、Eclipseやテキストエディタ等でどれがどれに対応しているかを指摘してくれるものはありますので、そういうものを使うのが良いのだろうと思います。 あまり不必要なコメントなどが入っているのもどうかと思うので。
- yutopapa
- ベストアンサー率47% (139/295)
基本的に字下げで表現するのが一般的です。 if (a == 1) { b += 1; } という形が一番の基本かな。 {を先頭行の最後に書いて、}は、{を書いた行の先頭に合わせる、というスタイルです。 どの括弧が対応しているのか、確かに複雑になると分かりづらくなりますよね。私は秀丸エディタでソースコードを書いているので、Ctrl+Kで対応する括弧にジャンプする機能を重宝しています。 ご参考まで。
- yasuti
- ベストアンサー率36% (136/374)
eclipseなどは使用されていますか? あとはテキストエディタでも、どの括弧がどれに対応しているかはわかると思いますが。