Class 为什么类整数自动返回1

Class 为什么类整数自动返回1,class,integer,Class,Integer,我的代码有问题。 我的代码是一个价值游戏 有2个项目,每个项目有价值和重量,一艘船有最大重量内容。 当我输入这些值时,控制台返回1 有人能告诉我为什么integer类返回1以及如何修复它吗 public class Sort { static int knapsackLight(int value1, int weight1, int value2, int weight2, int maxW) { if (weight1 + weight2 <= maxW) r

我的代码有问题。 我的代码是一个价值游戏

有2个项目,每个项目有价值和重量,一艘船有最大重量内容。 当我输入这些值时,控制台返回1

有人能告诉我为什么integer类返回1以及如何修复它吗

public class Sort {

    static int knapsackLight(int value1, int weight1, int value2, int weight2, int maxW) {
        if (weight1 + weight2 <= maxW) return value1 + value2;
        else{
            int d1 = maxW - weight1;
            int d2 = maxW - weight2;
            if (d1>=0 && d2>=0){
                if (value1 >= value2) return value1;
                else return value2;
            }
            else if (d1>=0 && d2<0) return d1;
            else if (d2>=0 && d1<0) return d2;
        }
        return 0;
    }  

    public static void main(String[] a){
        int val1 = 5;
        int val2 = 9;
        int w1 = 10;
        int w2 = 6;
        int maxW = 7;

        System.out.println(knapsackLight(val1,w1,val2,w2,maxW));
    }
}
公共类排序{
静态int背包灯(int-value1、int-weight1、int-value2、int-weight2、int-maxW){
如果(权重1+2=0&&d2>=0){
如果(value1>=value2)返回值1;
否则返回值2;
}

否则,如果(d1>=0&&d2=0&&d11是这些值的正确答案

如果(权重1+权重27)

(d1>=0&&d2>=0)为false,因为d2小于0(-3)


因此,您将返回d1,即maxW(7)-weight1(6)=1。

您将根据输入值获得不同的返回值。您可以在返回值之前添加调试语句,以检查哪个条件保持真值。例如

System.out.println("value1");
return value1;
...
...
System.out.println("value2");
return value2;
...
...
System.out.println("d1");
return d1;
...
...
System.out.println("d2");
return d2;

尝试使用新的值“w2”、“maxW”和“w1”哦,我明白了。我看不到我的返回是多么奇怪。非常感谢。