public static String getLeastPriceToy(Toy one, Toy two, Toy three, Toy four,
String category) {
Toy ansToy = one;
if(!one.getCategory().equals(category)&& !two.getCategory().equals(category)&&
!three.getCategory().equals(category)&&!four.getCategory().equals(category)){
System.out.println("no category found");
}
else{
if(two.getCategory().equals(category) && (two.getPrice()*two.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){
ansToy =two;
}
if(three.getCategory().equals(category) && (three.getPrice()*three.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){
ansToy =three;
}
if(four.getCategory().equals(category) && (four.getPrice()*four.getDiscount())<(ansToy.getPrice()*ansToy.getDiscount())){
ansToy =four;
}
}
return ansToy.getName();
这应该仅返回&#34;没有找到类别&#34;但香蕉是第一个字符串返回。我怎样才能消除这个:
答案 0 :(得分:2)
假设您正在打印getLeastPriceToy()
的结果,只需替换
System.out.println("no category found");
与
return "no category found";
答案 1 :(得分:1)
如果将System.out.println("no category found");
替换为return "no category found";
,则应获得所需的行为。
现在你打印&#34; Banana&#34;因为你总是 return ansToy.getName();
答案 2 :(得分:0)
您要返回的代码中没有地方&#34;找不到类别&#34;
你已经打印过.... system.out.println(&#34;找不到类别&#34;
但实际上你需要添加一行:
返回(&#34;未找到类别&#34;);
话虽如此,返回null而不是字符串可能更有用。
答案 3 :(得分:0)
此处已给出简短回答:将dict[tax_file][splitLine[1]] = splitLine[0]
替换为System.out.println("no category found");
此外,此代码存在多个问题,可以通过重新设计来缓解这些问题:
此版本处理您的要求,但没有此限制:
return "no category found";
这将适用于任意数量的玩具,之后不会进行任何代码修改,并且比原始版本更短。
答案 4 :(得分:0)
主要方法 我检查了类别是否匹配 如果匹配调用方法 否则“找不到类别”
这个逻辑帮助了我...... !!! 所有人都回答了我的问题。