2012-04-04 5 views
0

私はそれぞれのステートメントを単独でテストしたが動作しますが、||これは、文の!driver.getText()。toString()。equals( "")部分を無視します。何か案は?条件付きの各条件が自分自身ではあるが、一緒には動作しない場合

if((!driver.getText().toString().equals(""))|| (canDrive>=0)) 
+1

あなたは代わりに ''等号(「」) ' – ulmangt

+1

LHSは常に評価されますの)' String.isEmptyを(使用して、この少しきれいにすることができます - あなたは、これが実際のコードであることを確認していますか? –

+0

"!driver.getText()。toString()。equals(" ")' "の部分を無視するという意味ですか? –

答えて

1

||オペレータはまたはを意味します - ので、いずれかの条件が真である場合、テストは成功します。両方の条件を真にする場合は、&&を使用します。

もっと読み:http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html

+0

ありがとう、私は馬鹿のように感じる。 – Aaron

+0

@Aaron - 問題ありません。このリンクはJavaチュートリアルへのリンクです。Javaチュートリアルは、一般的にJavaを開始するための偉大なリソースです。 –

0

条件の両方の部分を実行する場合は、 '|'を使用します。オペレーター。私。

if(driver.getText().toString().length() > 0 | canDrive >= 0) 

けれども、文の左部分は必ず実行する必要があります。http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.24

+0

OPは、最初の部分が実行されていないと主張しています。 –

0

コンパイラは、使用しているのでdefiitelyそれが条件 の一部の残りの部分を無視するよりも、canDrive> = 0を発見した場合は||この意志が起こったので、(または)条件、

は他の賢明な完璧な、私が試してみました

はコードを参照してください。

class test{ 
    public static void main(String[] arr){ 
    String str = TestString"; 
    int canDrive = 1; 
    if(!str.toString().equals("") || canDrive >=0) 
     System.out.println("pass"); 
     else 
     System.out.println("fail"); 
    } 
}