【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※返信付き投稿の削除は禁止!
 ※マルチポスト(多重投稿)は慎んで!

 詳しくはこちら


本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.23036

コメントの入れ方がわからない
投稿者---烏龍茶(2005/09/13 11:44:43)


こんにちは。
くだらない質問で申し訳けないのですが。。。

普段から、精一杯読みやすいソースを書くことを心がけています。
読み易いソースの書き方の条件は沢山あるとおもいますが、基本的なものとして、
・コードが正しく整形されていること。
・コメントが的確に入っていること。
が挙げられると思います。
ここで、if文を使用する際のコメントの入れ方が分かりません。
皆さんはどのようにしていますか?
良ければ参考に教えてください。

具体的にどのように迷っているかというと。
-----
パターン
//〜の場合、処理Aを実行する。
if (a == 0) {
    //処理A
//〜の場合、処理Bを実行する。    ←ここの整形が気になるのでしっくりこない
} else {
    //処理B
}
-----
パターン
if (a == 0) {   //〜の場合、処理Aを実行する。
    //処理A

} else {    //〜の場合、処理Bを実行する。    ←コメントが長くなると見苦しい
    //処理B
}
-----
パターン
//僕の整形スタイル(} else { 見たいな書き方)が崩れてしまう
//〜の場合、処理Aを実行する。
if (a == 0)
{
    //処理A
}
//〜の場合、処理Bを実行する。
else
{
    //処理B
}
-----
パターン
if (a == 0) {
    //〜の場合、処理Aを実行する。    ←中に入れると分かりづらくならないか?
    //処理A

} else {
    //〜の場合、処理Bを実行する。
    //処理B
}
-----

今のところ、パターンい鮗腓忙藩僂靴討い泙垢、なんかもっと綺麗な方法とかないでしょうか?
皆さんの基本スタイルをよろしければ教えてください。





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:コメントの入れ方がわからない 23037 nop 2005/09/13 12:23:56
<子記事> Re:コメントの入れ方がわからない 23038 DD. 2005/09/13 13:02:28
<子記事> Re:コメントの入れ方がわからない 23053 επιστημη 2005/09/13 22:57:48


No.23037

Re:コメントの入れ方がわからない
投稿者---nop(2005/09/13 12:23:56)


参考までに、私の場合...


if( ... )   /* ○○か? */
{
    /* 処理 A */
}
else
{
    /* 処理 B */
}



この投稿にコメントする

削除パスワード

No.23038

Re:コメントの入れ方がわからない
投稿者---DD.(2005/09/13 13:02:28)


私の場合、
if 〜 else ならば私も nopさんと同じですね。
if 〜 else if ならばパターン△僚颪方をします。

>} else { //〜の場合、処理Bを実行する。 ←コメントが長くなる
に、関しては長いコメントを付けないようにします。
最初の if のコメントを見ればだいたいわかると思うので。

複雑・長いコメントが必要な場合は、
(そんなわかりにくい処理するなと言われそうですが)
// 〜
// 〜
if (...) {
} else if (...) {
}
と、あらかじめ解説を if 文の前に置いて処理を書きます。

参考になればうれしいです。



この投稿にコメントする

削除パスワード

No.23053

Re:コメントの入れ方がわからない
投稿者---επιστημη(2005/09/13 22:57:48)


> 皆さんの基本スタイルをよろしければ教えてください。

コードを読めば理解できるところにわざわざコメントをつけない。
裏返せば、
コメントを読まねば理解できんコードを書かない

どうしてもコメントを付すならば、if 〜 else 〜 全体を説明する
コメントをその冒頭に置く。

さらに言えばコメントで重要なのは体裁ではなく、その内容。



この投稿にコメントする

削除パスワード

No.23059

Re:コメントの入れ方がわからない
投稿者---烏龍茶(2005/09/14 09:23:57)


nopさん、DD.さん、επιστημηさん ありがとうございます。

nopさんの場合、コメントは単純かつ明確に書くということだと思うので、とても綺麗だと思います。
以前、僕の中で1関数のソースの行数(ステップ数ではない)をいかに減らすか。という謎なブームが巻き起こり、
if else の書き方を
if () {
} else {
}
に変えた経緯がありました。(あとwhileを使用せずにforを使うとか)
今の書き方は気に入っているのですが、nopさんの書き方はやっぱり見やすいなあ。とか思います。


DD.さんの
>長いコメントを付けないようにします。
は耳が痛いです。
出来上がったソースのステップ数を数えてみると、いつもコメント行+空行が4割を超えていたりします。

>// 〜
>// 〜
>if (...) {
>} else if (...) {
>}
>と、あらかじめ解説を if 文の前に置いて処理を書きます。
これはすばらしいと思います。
「〜の時Aの処理をする」「〜の時Bの処理をする」というのは、確かにソースを見れば分かることで、
これはつまり、
「その分岐処理が何を行っているのか、何のために分岐処理が必要なのか。」
を記述するということですよね?
でもこういうのは上手く書けないんですよねぇ。。。


επιστημηさんの
>コードを読めば理解できるところにわざわざコメントをつけない。
>裏返せば、
>コメントを読まねば理解できんコードを書かない
は、これは僕にはちょっと無理かなぁ。
なんせソースを書いている最中にそのコードの意味を忘れてしまうくらいですから。^^;
「あれ?このフラグの意味って何だったっけ?」って定義位置を探しにいくのはしょっちゅうですから。
他の人のソースを見るときは、安易にコメントを付けられないので、
「え〜ん、コメント付けといてよ〜」といつも泣いています。
(コメントが付いていないソースほど、よく理解した後に見ると綺麗なんですけどね。)

>さらに言えばコメントで重要なのは体裁ではなく、その内容。
う〜ん、耳が痛い。
体裁ってどうしてもこだわっちゃうんですよねぇ。
"if"と"("の間には空白一つ入れる。とか、","の後に空白を入れて、前には入れない。とか。
一番つらいのは、他の人のソースに追加する時で、その人のスタイルが自分と違ったりすると、
その人のスタイルに合わせて記述するのだけど、書いてる最中に
「あ〜ん、なんか気持ち悪いよ〜、全部直した〜い。」
とか訳の分からないジレンマに駆られますねぇ。
(その人のソースはスタイルがきちんと統一されていて綺麗なんですけどね)


皆さん、とても参考になりました。ありがとうございました。


#ステップ数で思い出したけど
int a;
if (a == 0)
{
  a++;
}
else
{
  a--;
}

#↑これってステップ数は5なのかなぁ?それとも9?


この投稿にコメントする

削除パスワード

No.23060

Re:コメントの入れ方がわからない
投稿者---まきじ(2005/09/14 09:40:11)


>#↑これってステップ数は5なのかなぁ?それとも9?

それは行数では?

行数なら

int a;
if (a == 0) a++;
else a--;

と書けば 3 になる。
ステップ数は、int a, a == 0, [a++ OR a--] で 3 かな?


この投稿にコメントする

削除パスワード

No.23061

Re:コメントの入れ方がわからない
投稿者---おでん(2005/09/14 12:01:41)


>
>#ステップ数で思い出したけど
>
int a;
if (a == 0)
{
  a++;
}
else
{
  a--;
}

>#↑これってステップ数は5なのかなぁ?それとも9?

私は、'{'+';'の数をステップ数と考えます。
なので、5(含む"int a;")になりますね。


この投稿にコメントする

削除パスワード

No.23062

Re:コメントの入れ方がわからない
投稿者---iijima(2005/09/14 12:04:00)


> 出来上がったソースのステップ数を数えてみると、
> いつもコメント行+空行が4割を超えていたりします。

ステップ数というか行数のことだと思いますが、必要なコメントならば無理に短くする努力をすることはないのでは?
何が必要でどう書くかが大事なのであって、量の問題ではないと思います。
簡潔であるのは良いことですが、短くすることを追求した結果、意味不明になってしまったら本末転倒ですよ。

> 「〜の時Aの処理をする」「〜の時Bの処理をする」というのは、
> 確かにソースを見れば分かることで、
> これはつまり、
> 「その分岐処理が何を行っているのか、何のために分岐処理が必要なのか。」
> を記述するということですよね?
> でもこういうのは上手く書けないんですよねぇ。。。

でも、それこそがコメントであって、前者のは言語を知らない人向けの文法解説ですね。

> επιστημηさんの
>> コードを読めば理解できるところにわざわざコメントをつけない。
>> 裏返せば、
>> コメントを読まねば理解できんコードを書かない

私もこれを理想としています。
現実にはコメントゼロにはなりませんが、それでも、できるだけコード自身に意味を語らせるように努めています。
そのために最も気を遣い、時間をかけてでも検討するのは変数や関数などの名前です。
例えば、

if( a == 0 ){
  ...
}
else{
  ...
}

を見たとき、"a"がなんだか分からないから「〜が〜の時」とかコメントをつけたくなるかも知れませんが、その前に、"a"を意味のある名前に変えればコードだけで意味が分かるようにならないか、と考えるわけです。
名前を工夫するだけで、

> 「あれ?このフラグの意味って何だったっけ?」って
> 定義位置を探しにいくのはしょっちゅうですから。

という状況はかなり軽減されるのではないでしょうか。

# 最近、1行255文字以内、変数名16文字以内という時代のBASICプログラ
# ムをVB.netに移植したのですが、変数名が1文字からせいぜい3文字に
# 記号化された意味不明のものばかりだったのが最も難儀でした^^;


この投稿にコメントする

削除パスワード

No.23085

Re:コメントの入れ方がわからない
投稿者---烏龍茶(2005/09/14 20:06:22)


>ステップ数というか行数のことだと思いますが、必要なコメントならば無理に短くする努力をすることはないのでは?
>何が必要でどう書くかが大事なのであって、量の問題ではないと思います。
>簡潔であるのは良いことですが、短くすることを追求した結果、意味不明になってしまったら本末転倒ですよ。

なるほど、たしかにそうですね。
臨機応変に考え方を変えていかないといけないなぁとしみじみ。


>> 「〜の時Aの処理をする」「〜の時Bの処理をする」というのは、
>> 確かにソースを見れば分かることで、
>> これはつまり、
>> 「その分岐処理が何を行っているのか、何のために分岐処理が必要なのか。」
>> を記述するということですよね?
>> でもこういうのは上手く書けないんですよねぇ。。。
>
>でも、それこそがコメントであって、前者のは言語を知らない人向けの文法解説ですね。

う〜ん。僕はだいたいフラグの意味とか書いちゃいますね。
たまに、「あっ、これは良いコメントだ。」と自画自賛するときもあってそのときはなんかうれしいです。


>現実にはコメントゼロにはなりませんが、それでも、できるだけコード自身に意味を語らせるように努めています。
>そのために最も気を遣い、時間をかけてでも検討するのは変数や関数などの名前です。
>
> 中略
>
>を見たとき、"a"がなんだか分からないから「〜が〜の時」とかコメントをつけたくなるかも知れませんが、その前に、"a"を意味のある名前に変えればコードだけで意味が分かるようにならないか、と考えるわけです。
>名前を工夫するだけで、
>
>> 「あれ?このフラグの意味って何だったっけ?」って
>> 定義位置を探しにいくのはしょっちゅうですから。
>
>という状況はかなり軽減されるのではないでしょうか。

最近はもっぱら、ローマ字で変数作ってます。^ ^;


参考になります。
皆さんありがとうございます。


ステップ数については良くわからないんですよね。
確かに、実行される処理数ということになると、まきじさんの言っている通りになると思うし、
聞いたり、調べたりするとおでんさんの言っているのが一般的なような気がするし。。。

以前、ステップ数を数えるツールを使ってみたところ、
そのツールは高度にコメントをとばしてくれるのですけど、空行を1ステップとして数えていました。。
をいをい。大丈夫かよ。。。とか思っちゃいました。



この投稿にコメントする

削除パスワード

No.23090

Re:コメントの入れ方がわからない
投稿者---shu(2005/09/14 20:50:18)


【掲示板ご利用上の注意】より、返信の引用は最小限に!

それから、雑談みたいな返信をダラダラと書かない。


この投稿にコメントする

削除パスワード

No.23099

Re:コメントの入れ方がわからない
投稿者---とおり(2005/09/15 00:28:13)


>>ステップ数というか行数のことだと思いますが

私の周りでは、ステップ数=行数として使うことがほとんどです。
実行するステップ数の意味では、「ダイナミックステップ数」なんて言葉を使います。
世の中一般では、どうなんでしょうね…


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧