我这里有个类中的方法,是根据用户输入的用户名、问题、和答案来找回密码的....
方法返回一个String字符串.
红色的字,怎么一个返回Pwd,一个返回空啊???是先执行if中的代码,在返回个null还是只执行到if,后面的不执行?
这样一个返回Pwd,一个返回空,是什么意思啊??
郁闷了.. 很基础的问题吧???
//找回密码
public String getPassword(String username, String question,String answer) {
db_conn.ConnectDB();
ResultSet rs = null;
try {
// sql语句:
String sql = "select Pwd from userinfo where username = '"
+ username + "' and question='" + question
+ "'  and answer='" + answer + "'";
// 执行sql语句:
rs = db_conn.sm.executeQuery(sql);
if (rs.next()) {
return rs.getString("Pwd");
}
return null;
}
catch (SQLException SqlE) {
SqlE.printStackTrace();
return null;

catch (Exception e) {
e.printStackTrace();
return null;

finally {
// 关闭连接,释放数据库资源:
db_conn.CloseDB();
}
}

解决方案 »

  1.   

    如果if条件true,只执行return rs.getString("Pwd");
    若false的话,只执行return null;
    前提是没有Exception。
      

  2.   

    如果查询到数据的话,即rs.next()为true的话,就执行if语句块,返回你查询到的Pwd列的值,
    如果没查询到数据,就返回null
    只要执行了return语句的话,方法就执行完毕,不会再往下执行的
      

  3.   

    执行到if里,直接返回了,不执行return null.如果找不到密码,也就是说执行不到if里,那就返回null.
      

  4.   

    晕,我还以为是红色出错了,使劲找错误呢
    楼上都讲好了。主要是return这个关键字,到这就退出了.
      

  5.   

    只要执行到return 就返回了,后面不执行了