if return问题

public class iftest {
    public static void main(String[] args) {
        String username = null;
        String password = "1";
        usernameif(username);
        passwordif(password);

    }

    private static void passwordif(String password) {
        if (password!=null) {
            System.out.println("password is not null");
            return;
        }
    }

    private static void usernameif(String username) {
        if (username==null) {
            System.out.println("username is null");
            return;
        }
    }
}

我如何让usernameif()完成后就停止执行下面的passwordif()
上面代码只会停止usernameif()而不会停止passwordif()

阅读 2.3k
4 个回答

短路法

public class iftest{
    public static void main(String[] args){
        String username = null;
        String password = "1";
        if(usernameif(username) && passwordif(password)){
            System.out.println("ok");
        }
    }
    
    private static boolean usernameif(String username){
        if(username == null){
            System.out.println("username is null");
            return false;
        }
        return true;
    }
    
    private static boolean passwordif(String password){
        if(password == null){
            System.out.println("password is  null");
            return false;
        }
        return true;
    }
}

这段代码里的 passwordifusernameif 里的 return 没有任何作用…
只有方法自己的 return 可以 return 出去自己

  1. 这段代码中的return没有任何意义, 但我相信这不是你关注的点
  2. 如果希望usernameif的return能达到同时让passwordif停止的效果,有多种处理方式,你自己权衡
    a. 抛出异常,将return替换成throw
    b. 多条件判断,既然passwordif的执行依赖于usernameif的执行结果,那么方法可以返回true或者false,后面依赖再多判断一次。

加个返回值,然后判断返回值进行操作。或者抛出异常

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题