java - 使用 If 检查整数

标签 java

如何使用If来检查输入必须是整数并且不能输入任何英文单词。

int numWeight = sc.nextInt();
if (numWeight == (int)numWeight) {
    ((Salad)menu[itemNum - 1]).setWeight(numWeight);

    System.out.println(menu[itemNum - 1].showOrderDetails());
    System.out.println("-------------------------------------------");
    System.out.println("Total No. of items ordered :");

    orderedItem[TtlOrderNum] = menu[itemNum - 1];
    TtlOrderNum += 1;

    Continue();
}
else {
    System.out.println("input must a be integer");
}

当我使用这段代码运行它并输入整数时,它显示:

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Unknown Source)
    at java.util.Scanner.next(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
    at SaladAndDrinkOrderSystem.placeOrder(SaladAndDrinkOrderSystem.java:69)
    at TestSaladAndDrinkOrderSystem.main(TestSaladAndDrinkOrderSystem.java:23)

最佳答案

你需要做类似的事情:

int numweight;
try {
    numweight = sc.nextInt();
    // Rest of your code here...
} catch (InputMismatchException e) {
    System.err.println("Please enter an integer");
}

为了不让java抛出输入不匹配的异常。

关于java - 使用 If 检查整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49949326/

相关文章:

Java字符串连接效率

java - 如何在 while 循环内使用按钮的 Action 监听器?

Java:跟踪动态加载类的执行

java - 如何使用gradle或maven一次仅对一个模块进行 Sonar 分析?

java - 如何保持 JTextArea 的大小不变?

java - 从 v22 升级到 v24 后,某些 Vaadin 组件未呈现

java - 如何将spark数据帧中的多列写入kafka队列

java - 如何注入(inject)一个变量取决于两种不同的用例?

java - 是否有办法从 AsyncResttemplate 获取 http.client.requests 指标?

java - 如何在 Apache Camel Blueprint 中使用异步路由