我希望isCorrect()方法返回“true”,因为它应该具有达到该答案的所有条件,但它只返回“false”(根据控制台多次返回)。有错误,但我不知道它们是什么。请告诉我这段代码出了什么问题。
public class BooleanMethodTest {
static int num1 = 1;
static int num2 = 2;
static int num3 = 3;
public static void main(String[] args) {
// it should print "true" but I get "false" instead
System.out.println(isCorrect("s1"));
}
public static boolean isCorrect(String s) {
boolean answer = false;
// step 1
if (s.equals("s1")) {
if (num1 == 1) {
isCorrect("s2");
} else {
System.out.println("else1");
}
}
// step 2
else if (s.equals("s2")) {
if (num2 == 2) {
isCorrect("s3");
} else {
System.out.println("else2");
}
}
// step 3
else if (s.equals("s3") ) {
if (num3 == 3) {
answer = true;
return true;
} else {
System.out.println("else3");
}
}
System.out.println(answer);
return answer;
}
}
在与String
进行所有String#equals
次比较后,问题仍然存在。因此链接的副本不能解决问题。但是,找到了真正的问题,请参阅评论部分。