关于1-9编程问题

关于1-9编程问题

public class UserManager {

public String checkUser(user one, user two){

String A;

   if(one.getName().equals(two.getName())){//两相比较是否一致

    if(one.getName()!=null){//判断是否为空

A="用户名一致!";

}else{

A="用户名不可为空,请正确输入!";

}

   }else{

    A="用户名不一致!";

    return A;

   }

   

   if(one.getPassword().equals(two.getPassword())){//两相比较是否一致

    if(one.getPassword()!=null){//判断是否为空

    A="密码一致!";

    }else{

    A="密码不可为空,请正确输入!";

    }

   }else{

    A="密码不一致!";

   }

   return A;

}

}




public class test {

public static void main(String[] args){

//定义变量

user one=new user();

user two=new user();

//分别写值

one.setName("Lucy");

one.setPassword("123456");

two.setName("Mike");

two.setPassword("1234567");

//输出写入的值

System.out.println("用户名:"+one.getName());

System.out.println("密码:"+one.getPassword());

System.out.println("用户名:"+two.getName());

System.out.println("密码:"+two.getPassword());

System.out.println("=====================");

//调用方法

UserManager three=new UserManager();

//输出方法结果

System.out.println(three.checkUser(one, two));

}



}




用户名:Lucy

密码:123456

用户名:Mike

密码:1234567

=====================

用户名不一致!


我手贱多试了下

怎么只输出了用户名不对而密码就不输出了呢?

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

你的代码做如下修改即可:

public String checkUser(user one, user two) {
     // 1、判断one和two是否为空
    if (one == null || two == null) {
        return "输出错误";
    }
    // 2、判断用户名是否为空
    if (one.getName().length() <= 0 || two.getName().length() <= 0) {
        return "用户名不可为空,请正确输入!";
    }
    // 3、判断密码是否为空
    if (one.getPassword().length() <= 0 || two.getPassword().length() <= 0) {
        return "密码不可为空,请正确输入!";
     }
    //4、用户名和密码都不为空,再做相等判断
    if(one.getName().equals(two.getName())){
         if(one.getPassword().equals(two.getPassword())){
             return "用户名和密码都一致!";
         }
         else{
             return "用户名一致!密码不一致!";
         }
    }
    else{
        return "用户名不一致!";
    }
}


  • 慕设计8107682 提问者 #1
    谢谢.不过没有“用户名和密码都不一致”的情况.不过已经解决了!谢谢!
    2017-07-26 17:21:18
irista23 2017-07-25 18:17:21
if (one.getName().equals(two.getName())) {
    if (one.getName() != null) {
        A = "用户名一致!";
    } else {
        A = "用户名不可为空,请正确输入!";
    }
} else {//因为不满足第一层if括号里的条件,所以直接到这里了,并且返回"用户名不一致!"
    A = "用户名不一致!";
    return A;
}


  • 提问者 慕设计8107682 #1
    那第2个if嵌套循环就不执行了吗?我没弄break啊.
    2017-07-25 19:51:38
  • irista23 回复 提问者 慕设计8107682 #2
    return了就退出当前checkUser()这个方法了,你想让程序继续执行,或者去掉else中的return或者将密码的判断移到else{}里面。
    2017-07-26 10:31:11
  • 提问者 慕设计8107682 回复 irista23 #3
    去掉前面else中的return就不会输出“用户名错误”了.放在前面的else里面也不行
    2017-07-26 13:34:22
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师