2017-02-06 14 views
-8

私はメソッドを書くための最善の方法を見つけようとしています。一つの方法は、真と偽とのブール変数を割り当てると、このように、この変数を返すことです: -ブール変数を返すか、直接真になる

boolean methodName(..arguments) 
{ 
    boolean variableName=false; 
    if(..check condition) 
    { 
     variableName=false; 
    } 
    return variableName; 
} 

別の方法は、真のリターンのような任意のブール変数に代入することなく、直接、trueまたはfalseを返すこともあります。

+11

「return(checkConditionHere);」というのはなぜでしょうか? –

+4

このメソッドでは常に 'false'を返しています。この場合、メソッドの最初の行に' false'を簡単に返すことができます –

+1

[1回の 'return'または複数回の' return 's](http://softwareengineering.stackexchange.com/a/118717/202685);決定的な答えはありません。私がリンクしているのは、多くの中から1つの試験です。既存のプロジェクトで作業している場合は、そのプロジェクトのスタイルと一致するものを使用します。自分のプロジェクトで作業している場合は、より読みやすいが一貫性のあるものを使用してください。クリーンアップコードが必要な場合は、 'finally'またはシングルリターンを使用してください。それで... –

答えて

1

ブール条件について多くのチェックを行わない単純な方法の場合、通常はtrueまたはfalseを返すだけで問題ありません。

boolean methodName(..arguments) { 
    return <checkCondition> 
} 

上記のスニペットは(あなたは、常にfalseを返しますので、私は意図を言う)あなたのコードの意図の減少です。

もっと複雑な関数の場合、一般的な経験則では、提供したものと同様の戻り変数を割り当てることです。リターンステートメントが多すぎると、保守が難しくなる可能性があります。

これはすべて、ソフトウェアチームによって管理されているコーディング標準に則っています。

-1

trueまたはfalseの値を変数に代入するかtrueまたはfalseを返すかは、ほぼ同じことです。それは、あなたのメソッドを呼び出すものの範囲と、それがどのように値を使用しているのかという意味において、意味を成しています。

five.checkToSeeIfItsFive();のように、trueを返している場合は読み込んだ場合とtrueの値を含む変数を返す場合があります。

+0

"あなたのメソッドを呼んでいるものの範囲内で何が意味をなすかによって決まります。"それは絶対に**間違いです**。呼び出し元のメソッドは、呼び出されたメソッドの実装方法の実装の詳細を気にしたり、知ってはいけません。 – Keith

+0

私はちょうどそれが実際にどのように動作するかではなく、英語で読みやすく理解することを目的としています。 –

+0

私には、trueまたはfalseを返すとコードを読みやすくなり、booleanStatusVariableのようなものを返すよりも簡単に思えます。しかし、場合によっては変数を使用する方が意味があるかもしれません。 –

0

trueまたはfalseの値を返すために変数を使用する必要はありません。

この単純な方法は、このようなルックスになります。

boolean yourMethod(argument) { 
    if (yourCondition) 
     return true; 
    else 
     return false; 
} 

以上簡単に(より正確):たとえば

boolean yourMethod(argument) { 
    return (yourCondition); 
} 

。ユーザは単語(「名前」など)を入力する。そしてブールメソッドを使って正確に "名前"を書いていることを確認する必要があります。今、あなたは、この書き込み:

public static void main(String[] args) { 
    // We create input stream reader and read input data. 
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 
    String s = reader.readLine(); 

    // Now you check out that user wrote exactly your word ("name"). 
    boolean result = checkInputData(s); 
} 


// Create boolean method. 
static boolean checkInputData(String arg) { 
    return arg.equals("name"); 
} 

を、ユーザーが「名前」を書いていた場合、あなたの変数結果はtrueになります。それ以外の場合は偽です。

関連する問題