人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

プログラム全般についての質問です。
下の関数を見てください。

public boolean isEditMode(int param){

?なんらかの処理?

if (param > 80){
return true;
}

return false;
}

戻り値がbool型の関数です。
何の処理をするものかは無視してください。

この関数、最終行でfalseを返しています。
これはやめろと注意されたことがあります。
(最後行ではtrueを返すよう作れということ)

自分もそう思う、という人がいたら理由を教えてください。
別にfalseでもいい、という方も、理由を教えてください。
言語は問いません。
どれくらいの人がどういった理由でそうしているか知りたいです。
よろしくお願いします。
ちなみに私は、そのときから最後はtrueを返すように作っています。

●質問者: cg_121
●カテゴリ:コンピュータ 趣味・スポーツ
✍キーワード:いるか プログラム 戻り値 言語 関数
○ 状態 :終了
└ 回答数 : 13/13件

▽最新の回答へ

1 ● Tskk
●14ポイント

返り値のtrue/falseが中立的な意味ならどちらでも良いと思います。

例えば偶数・奇数の判定、文字の種類の判定などです。

正常/異常を表すのでしたら、異常値はif文の中に、正常値は一番最後にしたくなります。

◎質問者からの返答

戻り値の意味による、ということですか。


2 ● tobeoscontinue
●14ポイント

私の場合は、正常に終了(何をもって正常とするかはその関数に何が求められているかによる)する場合が、関数の最後というふうにしています。

途中でreturnする場合はイレギュラーといった感じです。

が主にreturn文を複数書くというのはいやなので

bool flag = param > 80;
if (flag) {
 ...
}
return flag;

のようにして書くことが多いです。

◎質問者からの返答

一般的には、関数が途中で終わる書き方は、よくないとされてますよね。


3 ● garyo
●14ポイント

普通に条件が複数ある場合は最後にTrueになるのでは。

条件A,B、Cが成立していないといけない時はこうすると思います。

if(!A){

return false;

}else if(!B){

return false;

}else if(!C){

return false;

}

return true


誤判定で最後を通るのを恐れるので実際は、戻り値に最初にfalseを設定しておいて、条件が成立した時だけtrueを入れるように書きます。

これは「間違ってtrueを返すより、間違ってfalseを返す方が害が少ない」という考えからです。

boolean ret;

ret = false;

if(A && B && C){

ret = true;

}

return ret;

◎質問者からの返答

間違いが起きる可能性が少ない、とうことですね。


4 ● タイシン@我孫子
●14ポイント ベストアンサー

私も[true]派です。


メンテナンスをするうえでの可読性を考えると、

基本となる戻り値は[true]であるべきと考えます。

◎質問者からの返答

>メンテナンスをするうえでの可読性

これを意識するべきですよね。


5 ● yocchan731
●14ポイント

最後はtrue派です.断固trueでもないですが・・・

isEditMode(param)を英語っぽく書くならば,

Is param EditMode?です.

いうならば,「paramはEditModeですよね?」と尋ねています.

これは「paramがEditModeであること」を期待しています.

つまり,trueを期待しています.

期待しているということは,標準の動作がtrueであるということです.

なので,最後はtureを書いておきたいということでしょう.

◎質問者からの返答

関数名からfalseが期待されると、最後はfalseでよい、ということになりますね。そういう関数を作ってよいと思うかどうか、というのもありますね。

蛇足ですが、関数名からは

「paramがEditModeであるならtrueを返す」ことを期待しているとわかりますが、

「paramがEditModeであること」を期待しているかはわからないと思います。


1-5件表示/13件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ