NoSuchElementException错误

NoSuchElementException错误


NoSuchElementException错误,在自己的电脑里操作时没有错误,不知道为啥?

Test.java里的代码:

import java.util.Scanner;

public class Test{

     

  public static void main(String[] args) {

User yonghu1 = new User("Lucy",123456);

    User yonghu2 = new User("Mike",123456);

    

    while(true) {

   Scanner sc = new Scanner(System.in);

    System.out.print("用户名:");

//String h=sc.next();

UserManager a = new UserManager();

a.name = sc.next();

     if(a.checkUser(yonghu1, yonghu2)=="无此用户") {continue;}

System.out.print("密码:");

int t = sc.nextInt();

a.miMa = t;

a.checkmiMa(yonghu1, yonghu2);

    

    }


}

}

User里的代码:

public class User{

   

         //定义属性用户名、密码

    private String name;

    private int miMa;

    

   public User(String name,int miMa){

   

    this.setName(name);

    this.setmiMa(miMa);

        }

   

    

   

    

    private void setName(String name){

        this.name = name;

        

    }

    private void setmiMa(int miMa) {

    this.miMa = miMa;

    }

    

    public String getName(){

   

    return name;

   

    }

    public int getmiMa(){

   

        return miMa;

        }

}


UserManager里的代码:

public class UserManager{

   String name;

int miMa;


public String checkUser(User one, User two) {

String s = this.name;

String A = one.getName();

String B = two.getName();

if (s.equals(A)||s.equals(B)) {

return "";

}else {

System.out.println("无此用户");

return "无此用户";

}


}

public String checkmiMa(User one,User two) {

if ((this.miMa == one.getmiMa()) || (this.miMa == two.getmiMa())) {

return "";

}else {

System.out.println("密码错误");

return "密码错误";}

}

}

http://img1.sycdn.imooc.com//climg/606b16c30998443c19201080.jpg

NoSuchElementException错误


正在回答

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

2回答

同学你好,测试代码并没有出现NoSuchElementException异常,如下

http://img1.sycdn.imooc.com//climg/606bd48d0954fb3301820217.jpg

另外这里字符串的比较建议使用equals

http://img1.sycdn.imooc.com//climg/606bd4dd09881fc905150056.jpg

祝学习愉快~

慕虎0006524 2021-04-06 01:44:30

你这个我拷到eclipse里面运行了一下,正常运行是没问题,但是有逻辑错误

UserManager里面定义了一个String name但没有赋值

第一个构造方法里面有个String s = this.name;

​你把没有值的name进行equals你传的参

直接导致无论输入是否正确都是不存在用户名


不过他这个题出的也有问题,没有描述清楚


  • 提问者 心静247612 #1

    a.name=sc.next()是传值

    2021-04-06 02:10:50
  • 提问者 心静247612 #2

    程序又测试了一下。逻辑没错。只是答案与问题不一样。
    而我要问的问题是这段代码在慕课网上测试报NoSuchElementException的错误。
    如果觉得程序有什么逻辑上的错误可以回复一下。报的那个问题也可以帮我解决一下。谢谢

    2021-04-06 02:21:19
  • 慕虎0006524 回复 提问者 心静247612 #3

    UserManager里的代码:

    public class UserManager{

       String name;

    int miMa;


    public String checkUser(User one, User two) {

    String s = this.name;

    String A = one.getName();

    String B = two.getName();

    你输个正确的用户名看看

    2021-04-06 02:28:55
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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