Class 为什么类整数自动返回1
我的代码有问题。 我的代码是一个价值游戏 有2个项目,每个项目有价值和重量,一艘船有最大重量内容。 当我输入这些值时,控制台返回1 有人能告诉我为什么integer类返回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
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”哦,我明白了。我看不到我的返回是多么奇怪。非常感谢。