Ik heb hulp nodig bij het retourneren van een booleaanse methode in java. Dit is de voorbeeldcode:
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?
}
Ik wil dat de verifyPwd()
een waarde op true of false retourneert wanneer ik die methode wil aanroepen. Ik wil die methode als volgt aanroepen:
if (verifyPwd()==true){
//do task
}
else {
//do task
}
Hoe stel ik de waarde voor die methode in?
Antwoord 1, autoriteit 100%
Je mag meer dan één return
-statement hebben, dus het is legaal om te schrijven
if (some_condition) {
return true;
}
return false;
Het is ook niet nodig om booleaanse waarden te vergelijken met true
of false
, zodat u kunt schrijven
if (verifyPwd()) {
// do_task
}
Bewerken: soms kun je niet eerder terug omdat er meer werk aan de winkel is. In dat geval kun je een booleaanse variabele declareren en deze op de juiste manier binnen de voorwaardelijke blokken plaatsen.
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;
Antwoord 2, autoriteit 26%
probeer dit:
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
System.out.println(“wachtwoord komt niet overeen”);
}
Antwoord 3, autoriteit 13%
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;
}
}
Antwoord 4, autoriteit 13%
U kunt dit ook doen, omwille van de leesbaarheid
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;
Antwoord 5, autoriteit 4%
De beste manier zou zijn om de variabele Boolean
binnen het codeblok te declareren en deze aan het einde van de code te return
, als volgt:
public boolean Test(){
boolean booleanFlag= true;
if (A>B)
{booleanFlag= true;}
else
{booleanFlag = false;}
return booleanFlag;
}
Ik vind dit de beste manier.