java中出现this method must return a result of type int

classDay{publicintgetMaxAge(){int[]ages={18,45,6,77,44,55,66};intmax=ages[0];for(inti... class Day {
public int getMaxAge(){
int[]ages={18,45,6,77,44,55,66};
int max =ages[0];
for(int i=0;i<ages.length;i++){
if(ages[i]<ages[i+1]){
int t=ages[i];
ages[i]=ages[i+1];
ages[i+1]=t;
}else{
break;
}
return max;
}
}
}
大神么看看
展开
 我来答
Shikyoh
2016-07-18 · TA获得超过396个赞
知道小有建树答主
回答量:220
采纳率:100%
帮助的人:129万
展开全部
因为你把return写到for循环里面了

for循环是有可能一次都不执行的 也就是说方法 有可能没有明确的return 所以就会报这个编译错误
建议你 在for循环外加一个return
追问
大神,真的一直都没执行,直接输出的18。。。。怎么改呢
追答

我终于看明白了 你是想取最大值 但是把排序代码写到逻辑里面了

  public int getMaxAge(){
    int[]ages={18,45,6,77,44,55,66};
    int max =ages[0];
    for(int i=0;i<ages.length;i++){
      if(max <ages[i]){
        max = ages[i];
      }
    }
    return max;
  }

妥妥的

夜色无边0001
2016-07-18 · TA获得超过127个赞
知道小有建树答主
回答量:108
采纳率:100%
帮助的人:42.7万
展开全部
这个错误是因为你的方法不一定会有返回值,例如ages.length=0的时候,
return max 不要写到for循环里面
追问
是的,直接输出的18,要怎么改呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
985263580
2016-07-18 · TA获得超过181个赞
知道答主
回答量:54
采纳率:0%
帮助的人:34.8万
展开全部
return max;应该放到for循环之外
追问
之后,输出的是18,FOR循环没执行,那个int max应该放在哪
追答
不知道你最终要做什么,返回Max的值可以在if里面赋值,for外面return
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式