【问题标题】:Can anyone help on this This method must return a result of type int [closed]任何人都可以对此提供帮助此方法必须返回 int 类型的结果 [关闭]
【发布时间】:2021-02-02 15:02:50
【问题描述】:

我被困在这里我想打印这些值,但它不允许我。请帮忙

public int horaPraticada(Intervalo crime) {
    if (inicio != crime.getStart() && fim != crime.getEnd()) {
    
        return  (crime.getEnd() - crime.getStart()); }
        
    if (inicio > crime.getStart() && fim < crime.getEnd()) {
        return  (crime.getEnd() - crime.getStart());
    }
    if (inicio == crime.getStart() && fim > crime.getEnd()) {
        
        return (crime.getEnd() - crime.getStart());
    }
    if (inicio != crime.getStart() && fim == crime.getEnd()) {
        return (crime.getEnd() - crime.getStart());
    
    }
    
    
    
    
}

【问题讨论】:

  • 您需要在if 条件之外添加一个return 语句。
  • 因为每个 if 块都包含完全相同的返回结果,所以 @GaryNLOL 的答案就是要走的路。
  • 重点不是如何使这项工作;但糟糕的设计。更正您的设计并执行代码覆盖率测试。

标签: java integer return return-value return-type


【解决方案1】:

为了进一步改进 GriffeyDog 的回答:编译器不知道是否所有条件都可能失败。如果它们都失败了,那么该方法将不会返回任何东西。因此,需要在条件之外添加return语句。

【讨论】:

  • 是的,它成功了!感谢战利品!
【解决方案2】:

为什么不这样做?

public int horaPraticada(Intervalo crime) {
     return (crime.getEnd() - crime.getStart());   
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2018-03-08
    • 2013-12-18
    • 2015-09-25
    • 2013-11-24
    相关资源
    最近更新 更多