web-dev-qa-db-ja.com

javaでブールメソッドを返す方法は?

Javaでブールメソッドを返す方法についてのヘルプが必要です。これはサンプルコードです。

public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
           }
        else {
            addNewUser();
        }
        return //what?
}

verifyPwd()がそのメソッドを呼び出すたびにtrueまたはfalseのいずれかの値を返すようにします。このメソッドを次のように呼び出したい:

if (verifyPwd()==true){
    //do task
}
else {
    //do task
}

そのメソッドの値を設定する方法は?

19
Jay Marz

複数のreturnステートメントを持つことが許可されているため、次のように記述することは正当です。

if (some_condition) {
  return true;
}
return false;

また、ブール値をtrueまたはfalseと比較する必要がないため、次のように記述できます。

if (verifyPwd())  {
  // do_task
}

編集:まだやるべきことがあるため、早めに戻ることができない場合があります。その場合、ブール変数を宣言し、条件ブロック内で適切に設定できます。

boolean success = true;

if (some_condition) {
  // Handle the condition.
  success = false;
} else if (some_other_condition) {
  // Handle the other condition.
  success = false;
}
if (another_condition) {
  // Handle the third condition.
}

// Do some more critical things.

return success;
21
Adam Liss

これを試して:

public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
                  return false;
           }
        else {
            return true;
        }

}

if (verifyPwd()==true){
    addNewUser();
}
else {
    // passwords do not match
}
5
PC.
public boolean verifyPwd(){
        if (!(pword.equals(pwdRetypePwd.getText()))){
                  txtaError.setEditable(true);
                  txtaError.setText("*Password didn't match!");
                  txtaError.setForeground(Color.red);
                  txtaError.setEditable(false);
                  return false;
           }
        else {
            addNewUser();
            return true;
        }
}
2
Mihai Danila

読みやすくするためにこれを行うこともできます

boolean passwordVerified=(pword.equals(pwdRetypePwd.getText());

if(!passwordVerified ){
    txtaError.setEditable(true);
    txtaError.setText("*Password didn't match!");
    txtaError.setForeground(Color.red);
    txtaError.setEditable(false);
}else{
    addNewUser();
}
return passwordVerified;
2
Karthik T

最良の方法は、次のように、コードブロック内でBoolean変数を宣言し、コードの最後でreturn変数を宣言することです。

public boolean Test(){
    boolean booleanFlag= true; 
    if (A>B)
    {booleanFlag= true;}
    else 
    {booleanFlag = false;}
    return booleanFlag;

}

これが最良の方法だと思います。

0
SSS