&&演算子
日本語 | 論理積演算子 |
英語 | logical and operator |
ふりがな | あんどあんどえんざんし、あんぱさんどあんぱさんどえんざんし、ろんりせきえんざんし |
フリガナ | アンドアンドエンザンシ、アンパサンドアンパサンドエンザンシ、ロンリセキエンザンシ |
「論理積」を行う演算子。
二項演算子のひとつ。
論理演算のひとつ「論理積」を行う演算子。
両オペランドともtrueの場合にのみtrueを、それ以外はfalseを返す。
オペランドにはboolean型のみ使用することができ、戻り値の型もboolean型である。
一般にif等のステートメントの条件式に使用する。
「論理和」を行う演算子は「||演算子」である。
&&演算子は「ショートサーキット」が行われる演算子である。
左オペランドを評価した結果がfalseの場合、右オペランドの結果に関わらず結果はfalseとなる。そのため、この場合には右オペランドの評価がされない。
右オペランドで何か処理を行っている場合、その処理そのものが行われない。ショートサーキットされることを知っていない場合、処理されるはずなのに処理されない、ということになるため注意すること。
二項演算子のひとつ。
論理演算のひとつ「論理積」を行う演算子。
両オペランドともtrueの場合にのみtrueを、それ以外はfalseを返す。
オペランドにはboolean型のみ使用することができ、戻り値の型もboolean型である。
一般にif等のステートメントの条件式に使用する。
「論理和」を行う演算子は「||演算子」である。
&&演算子は「ショートサーキット」が行われる演算子である。
左オペランドを評価した結果がfalseの場合、右オペランドの結果に関わらず結果はfalseとなる。そのため、この場合には右オペランドの評価がされない。
右オペランドで何か処理を行っている場合、その処理そのものが行われない。ショートサーキットされることを知っていない場合、処理されるはずなのに処理されない、ということになるため注意すること。
参考サイト
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// &&を使用します。
// いわゆる「論理積」を計算します。
boolean b;
b = true && true;
System.out.println( b );
// true
b = true && false;
System.out.println( b );
// false
b = false && true;
System.out.println( b );
// false
b = false && false;
System.out.println( b );
// false
// boolean型以外は使用できません。
// b = true && 1;
// コンパイルエラー:
// 演算子 && は引き数の型 boolean, int で未定義です。
// &&演算子はショートサーキットが行われます。
b = false && getTrue();
// この時、getTrue()は呼ばれません。
// &&演算子は左オペランドから評価します。そして、
// 左オペランドがfalseの場合、右オペランドに関わらず
// 結果はfalseとなるため、右オペランドは評価されないわけです。
}
/**
* ショートサーキットテスト用メソッド。
*/
private static boolean getTrue()
{
System.out.println( "Sample#getTrue()" );
return true;
}
}
public class Sample
{
public static void main( String[] args )
{
// &&を使用します。
// いわゆる「論理積」を計算します。
boolean b;
b = true && true;
System.out.println( b );
// true
b = true && false;
System.out.println( b );
// false
b = false && true;
System.out.println( b );
// false
b = false && false;
System.out.println( b );
// false
// boolean型以外は使用できません。
// b = true && 1;
// コンパイルエラー:
// 演算子 && は引き数の型 boolean, int で未定義です。
// &&演算子はショートサーキットが行われます。
b = false && getTrue();
// この時、getTrue()は呼ばれません。
// &&演算子は左オペランドから評価します。そして、
// 左オペランドがfalseの場合、右オペランドに関わらず
// 結果はfalseとなるため、右オペランドは評価されないわけです。
}
/**
* ショートサーキットテスト用メソッド。
*/
private static boolean getTrue()
{
System.out.println( "Sample#getTrue()" );
return true;
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // &&を使用します。 // いわゆる「論理積」を計算します。 boolean b; b = true && true; System.out.println( b ); // true b = true && false; System.out.println( b ); // false b = false && true; System.out.println( b ); // false b = false && false; System.out.println( b ); // false // boolean型以外は使用できません。 // b = true && 1; // コンパイルエラー: // 演算子 && は引き数の型 boolean, int で未定義です。 // &&演算子はショートサーキットが行われます。 b = false && getTrue(); // この時、getTrue()は呼ばれません。 // &&演算子は左オペランドから評価します。そして、 // 左オペランドがfalseの場合、右オペランドに関わらず // 結果はfalseとなるため、右オペランドは評価されないわけです。 } /** * ショートサーキットテスト用メソッド。 */ private static boolean getTrue() { System.out.println( "Sample#getTrue()" ); return true; } }