我正在尝试编写布尔方法,但它不起作用
public boolean addPresent(Present present)
{
if(totWeight+present.getWeight()<=maxWeight)
{
presents.add(present);
presents1.add(present);
return true;
}
for(Present pres : presents1)
{
totWeight+=pres.getWeight();
}return false;
}
它的工作,如果我写这个方法:
public void addPresent(Present present)
{
if(totWeight+present.getWeight()<=maxWeight)
{
presents.add(present);
presents1.add(present);
System.out.println("true");
}else
{ System.out.println("false");
}
for(Present pres : presents1)
{
totWeight+=pres.getWeight();
}
}
我应该如何为它制作布尔方法?
在清理了格式并比较了您描述的两种方法后,我注意到一个主要的逻辑错误。
在第一种方法中,您执行以下操作:
如果true,返回true并停止运行该方法的其余部分。-如果false,添加所有当前权重并返回false
在第二种方法中,您执行以下操作:
如果true,返回true并继续运行该方法的其余部分。-如果false,添加所有当前权重并返回false
如果第一种方法是您想要的方法,请在方法的开头声明一个布尔值,并根据测试结果将其设置为true或false,然后返回该布尔值。这样,您就可以推迟实际的返回语句,直到完成计算。
public boolean addPresent(Present present)
{
boolean temp = false;
if(totWeight+present.getWeight()<=maxWeight)
{
presents.add(present);
presents1.add(present);
temp = true;
}
for(Present pres : presents1)
{
totWeight+=pres.getWeight();
}
return temp;
}
我注意到的主要区别是,当返回true
时,它不会向总重量添加任何内容。我还认为您想用类似的方法重置
总计
public boolean addPresent(Present present) {
boolean r = false;
if (totWeight + present.getWeight() <= maxWeight) {
presents.add(present);
presents1.add(present);
r = true;
}
totWeight = 0; // <-- reset total.
for (Present pres : presents1) {
totWeight += pres.getWeight();
}
return r;
}
您需要在for循环之前返回false,或者在检查权重小于maxWeight的条件中包含for循环。或者你可以只添加当前的重量到总重量,不需要循环。
public boolean addPresent(Present present){
if(totWeight+present.getWeight()<=maxWeight){
presents.add(present);
presents1.add(present);
totWeight += present.getWeight();
return true;
}
return false;
}
问题内容: 如何检查布尔值是否为null?因此,如果我知道“ hideInNav”为空。如何阻止它进一步执行?像下面这样的东西似乎不起作用,但是为什么呢? 问题答案: 只能是或因为它是原始数据类型(+ 变量的默认值为)。如果要使用值,则可以改用类。布尔是一种引用类型,这就是您可以分配给布尔“变量”的原因。例:
问题内容: 我有一个的条目: 目前,我正在检查它是否包含真像这样: 这是检查布尔数组的 最快 方法吗?如果不是,执行此检查的最快方法是什么? 编辑: 通过在Android 4.03 Samsung S2设备上将其作为应用程序运行,我对您的答案中的方法进行了计时,如下所示: 在五次跑步中的时间排名最高,排名第一: 在5334和11584 ns之间: } return false; 在160542和1
问题内容: 因此,我听说如果将2个字符串与==进行比较,则只有它们都引用相同的对象/实例时,我才会返回true。那是琴弦。布尔呢? 问题答案: ==是否检查布尔值是否完全相等?-Java 这取决于您是在谈论s(对象包装,请注意大写)还是s(原始,请注意小写)。如果您在谈论s(对象包装器),就像处理所有对象一样,请检查 身份 ,而不是对 等 。如果您在谈论s(基元),它将检查是否相等。 所以: 但
我需要一个可以在junit 方法中调用的方法,该方法比较两个布尔值以检查它们是否相等,并返回一个布尔值。例如,类似这样的事情: 如果不相等,则返回false,如果相等,则返回true。我已经检查了布尔类,但是唯一接近的是< code>Boolean.compare(),它返回一个int值,我不能使用这个值。
除了相等检查,Jasmine还提供了一些方法来检查布尔条件。 以下是帮助我们检查布尔条件的方法。 toBeTruthy() 此布尔匹配器在Jasmine中用于检查结果是等于true还是false。 以下示例将帮助我们理解toBeTruthy()函数的工作原理。 ExpectSpec.js describe("Different Methods of Expect Block",function (
问题内容: 一位访问员最近问我这个问题:给定三个布尔变量a,b和c,如果三个变量中至少有两个是true,则返回true。 我的解决方案如下: 他说,这可以进一步改善,但是如何呢? 问题答案: 而不是写: 写: 至于表达式本身,是这样的: 或此(无论您觉得更容易掌握): 它测试和准确一次,最多一次。 参考文献 JLS 15.25条件运算符?: