调用自身后,Java方法返回错误的答案

时间:2018-02-21 20:57:00

标签: java if-statement recursion boolean-logic

我希望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次比较后,问题仍然存在。因此链接的副本不能解决问题。但是,找到了真正的问题,请参阅评论部分。

0 个答案:

没有答案