2017-02-03 46 views
1

我需要使用floor函数修复用户输入的值,而不是让它抛出异常并停止。可能吗? 如果用户输入8.3;它应该变成8而不是抛出异常。任何想法如何执行此?那我写代码如何解决整数的值而不是抛出异常?

部分,就如同:

try{ 
    int y=0; 
    Scanner inputY = new Scanner(System.in); 
    System.out.println("Enter an Integer between 1-9"); 
    y = inputY.nextInt(); 
    catch(InputMismatchException e){ 
    return 0; 
    } 
    finally{ 
     System.out.println("The input number was not an integer between 1-9"); 
     System.exit(0); 
    } 
+0

'Scanner'提供了'hasXyz'方法来测试是否读取'nextXyz'将引发异常。您可以使用此方法来决定'Scanner'是否正在查看'int'或'double',并阅读哪一个可用。 – dasblinkenlight

回答

2

不要使用nextInt()nextDouble(),使从双转换为int。

double y = inputY.nextDouble(); 
int x = (int) y; 
+0

很酷。它工作得很好。谢谢!! –

+0

欢迎您:) – davidxxx

相关问题