2012-01-10 9 views
1
このコードで

m2戻り値はブール値のメソッドで正確に何をしますか?

public static void main(String []args){ 
    int [] a = {10, 20, 30}; 
    if(m1(a)) 
    m2(a, 0); 
    else 
    m2(a, 1); 
    for(int i = 0; i < a.length; i++) 
    System.out.println(a[i] + " "); 
} 

public static boolean m1(int [] a){ 
    return a[0] == a[1]/2; 
} 

public static void m2(int [] a, int b){ 
    a[b] = 1; 
} 
} 

、ラインはa[0] == a[1]/2がそうである、return後に何が来るのでしょうか? それはひよこの声明ですか? return

+2

「ひよこ文」?それは何ですか? – Bhushan

答えて

2

ifの文で考えると、次のようなことは何ですか?

if (a[0] == (a[1]/2)) { 
... 

それは評価のブール結果だ - trueまたはfalse。それが本当なら、何かをしてください。

returnと一緒に使用すると、ブール結果が呼び出し側に返されます。

+0

はい、今見ているので、値の更新ではなくブール式を返します。ありがとうございます – AbdullahR

+1

あなたはそれを持っています。 '=='は等価性をテストしています。結果はbooleanです。 –

2

これは、メソッドが返す値を示すブール式です。
intを返すメソッドと変わりはありません。

5

あなたはm1を意味すると思います。演算子の優先順位の

public static boolean m1(int [] a){ 
    return (a[0] == (a[1]/2)); 
} 

をメモ:あなたはこのようなコードを読んでいる場合

とにかく、それは助け括弧が平等前に評価されています。つまり、a [0]と式の結果(a [1]/2)の間の等価を返します。


あなたの優先順位のルールがわからない場合は、代わりとして、コードを読むことができる:式はすなわち、実際に真である場合はtrue

public static boolean m1(int [] a){ 
    int i = a[1]/2; 
    boolean foo = (a[0] == i); 
    return foo; 
} 
5
return a[0] == a[1]/2 

戻ります。 a [0]はa [1]を2で割ったものに等しく、そうでない場合はfalseです。

0

値を返すメソッドでは、returnステートメントは返す値を示します。たとえば、このメソッドは次のとおりです。

​​

は引数の2倍を返します。この方法:

public static void main(String... args) 
{ 
    System.out.println(timesTwo(7)); // prints 14. 
} 

プリント14です。

あなたの例:

public static boolean m1(int [] a) 
{ 
    return a[0] == a[1]/2; 
} 

戻りtruea[0] == a[1]/2場合;それ以外の場合は、falseを返します。

+0

良い説明、今私は..それはすべてのブール式についてです。 – AbdullahR

1

次のようにではなく、これをコーディングし、プログラマの特定の種類があります:

if(a[0] == a[1]/2) 
    return true; 
else 
    return false; 

私たちは、プログラマのこの種では軽蔑し、昼休み中に、我々はどこにでもそれらの近くに座っていませんが。

あなたの質問にお答えするには、return a[0] == a[1]/2;は完全に有効な声明です。経験豊富なプログラマーは、他の方法ではなくこのように見ています。式の中の '=='は、この式がブール値に評価されていることを示し、このブール値が関数によって返されます。それは絶対にうまいです。

return a[0] == (a[1]/2);として理解すると助かりますが、演算子の優先順位がわかっていればそれは不要ですが、いずれの場合でも除算演算子は機能しない可能性があります(​​)ブール値に適用できます。

関連する問題