public String a(){
    int i;
    for(i=0;i<5;i++)
       return "a";
}
为什么我写了return他还是提示missing return statement?但如果把循环去掉就可以了为什么啊?谢谢

解决方案 »

  1.   

    for循环不能保证每个i都执行到,中间可能有break,所以编译器认为有可能无法得到返回结果我猜的,呵呵
      

  2.   

    for循环的作用是什么?里面没有执行体?至少有个空语句吧?
    看不懂意图。
      

  3.   

    因为 for语句不一定会被执行!
      

  4.   

    我想做一个方法能做到查询一条SQL记录返回一个String的值.但是也报missing return statement代码如下:
    public String sql() throws SQLException{
            try{           
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动
                con=DriverManager.getConnection("jdbc:odbc:test","sa","");//连接数据库
                sta=con.createStatement();//发送SQL到数据库
                rs=sta.executeQuery("select * from test");//将查询结果存入rs
                System.out.println("DB Connect Successfully");
                while(rs.next()){
                    return(rs.getString("address"));
                }
            }
            catch(ClassNotFoundException ex)
            {
                System.err.println(ex);  
            }
    }
      

  5.   

    设计思想有错误码.
    返回值应该写在方法体的末尾,根据情况返回不同的值
    public String sql() throws SQLException{
            try{           
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//加载数据库驱动
                con=DriverManager.getConnection("jdbc:odbc:test","sa","");//连接数据库
                sta=con.createStatement();//发送SQL到数据库
                rs=sta.executeQuery("select * from test");//将查询结果存入rs
                System.out.println("DB Connect Successfully");
                //这个循环不行,程序在这里它只会明白两种情况,一是rs.next就返回值,返回的是第一行记录的值,二是把每行的address值保存到一个数组中,然后再返回数组,但返回类型又只能是string,所以在这里最好不要用这个循环,除非你想判断某值,然后返回.
              //  while(rs.next()){
               //     return(rs.getString("address"));
              //  }
                    return(rs.getString("address"));
            }
            catch(ClassNotFoundException ex)
            {
                System.err.println(ex);  
                return ""; // 返回空字符串 
            }
    }