ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

用户错误后返回扫描仪读取-Java

2019-10-10 03:07:59  阅读:15  来源: 互联网

标签:java



我已读过只能为int类型的用户输入,当用户输入字母而不是int时出现问题.我知道如何处理该异常,但是我想在用户犯错的地方返回扫描仪读取的信息.我能怎么做?
我已经尝试过无限循环,但是它不起作用.

try{
    System.out.print("enter number: ");
    value = scanner.nextInt();
}catch(InputMismatchException e){
    System.err.println("enter a number!");
}

解决方法:

尽管其他答案为您提供了使用循环的正确思路,但您应避免将异常用作基本逻辑的一部分.相反,您可以使用Scanner中的hasNextInt来检查用户是否传递了整数.

System.out.print("enter number: ");
while (!scanner.hasNextInt()) {
    scanner.nextLine();// consume incorrect values from entire line
    //or 
    //tastiera.next(); //consume only one invalid token
    System.out.print("enter number!: ");
}
// here we are sure that user passed integer
int value = scanner.nextInt();


标签:java

专注分享技术,共同学习,共同进步。侵权联系[admin#icode9.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有