想问下Scanner.next()方法
Main {
(String[] args) {
StudentScoreManage ssm=StudentScoreManage();
Scanner input=Scanner(System.);
option=; {
ssm.displayMenu();{
option=input.nextInt(); }(InputMismatchException e){
System..println();
input.next();
}
}(option==);
}
}我的代码一开始是没有input.next()的,所以当用户输入的为非数字时程序一直在循环显示菜单,没办法重新输入。看了老师这个视频里加了个sc.next(),说是接收用户的输入。想问下当执行到sc.next()方法后,系统不会等我的下次输入吗?它现在是直接把我之前输错的内容给存进去了吗?
9
收起
正在回答
1回答
同学你好,当Scanner接收到数据时,会对数据进行验证,如果数据类型接收不匹配,会直接抛出异常而不处理该数据,并且该数据是不会被内存所丢弃,会一直保存到内存中,直到程序运行结束,才会被内存丢弃,或者该数据被其他方法所接收从而消耗掉,而sc.next方法会接收到String类型的数据,即任何数据都会被接收,并且不会报错。
综上所述,scanner.next();只是用来消耗数据的。
祝学习愉快~
Java工程师 2024版
- 参与学习 2053 人
- 提交作业 1490 份
- 解答问题 1316 个
2024重磅革新,超百小时内容豪华升级,加速提升高级技能与高薪就业竞争力 课程紧贴企业最新人才需求,历经7年持续迭代,帮助万名学子入行转行 从零起点到高阶实战,学习路径稳健顺滑,成就从小白到工程师高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星