class Person{
private String name;
private int age;
public void tell(){
System.out.println("姓名:" + getName() + ",年龄:" + i());
}
public int i(){
if(getAge() >= 0)
return getAge();
if(getAge() < 0)
return 000;
}
public String getName(){
return name;
}
public void setName(String n){
name = n;
}
public int getAge(){
return age;
}
public void setAge(int a){
age = a;
}

}
public class EncDemo03{
public static void main(String[] args){
Person per = new Person();
per.setName("张三");
per.setAge(30);
per.tell();
}
}//编译提示一个错误:
EncDemo03.java:12: 错误: 缺少返回语句
        }
        ^
1 个错误
请大家帮忙看看是什么问题,谢谢

解决方案 »

  1.   

    public int i(){
    if(getAge() >= 0)
    return getAge();
    if(getAge() < 0)
    return 000;
    }
    public int i(){
    if(getAge>=0){
    return getAge();}
    if(getAge()<0){
    return 000;
    }
    return 0;//这里差个return;
    }
    }
      

  2.   

    这段代码:
    public int i(){
    if(getAge() >= 0)
    return getAge();
    if(getAge() < 0)
    return 000;
    }请修改为:
    public int i(){
      if(getAge() >= 0) return getAge();
      else return 0;
    }
    因为Java认为如果两个if条件都不成立(不要想当然的认为觉不可能),就会导致没有 return 数据返回。
    另外,下次尽量排版好。
      

  3.   

    public int i(){
    if(getAge() >= 0)
    return getAge();
    if(getAge() < 0)
    return 000;
    }这个方法编译器认为有可能没有返回 ,虽然你的逻辑是不可能没有返回值的所以 可以改成 public int i(){
    if(getAge() >= 0)
      return getAge();
    else
      return 000;
    }