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
}
そのメソッドの値を設定する方法は?
複数の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;
これを試して:
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
}
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;
}
}
読みやすくするためにこれを行うこともできます
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;
最良の方法は、次のように、コードブロック内でBoolean
変数を宣言し、コードの最後でreturn
変数を宣言することです。
public boolean Test(){
boolean booleanFlag= true;
if (A>B)
{booleanFlag= true;}
else
{booleanFlag = false;}
return booleanFlag;
}
これが最良の方法だと思います。