Java 检查用户输入是否为Int(无异常)?
我正在尝试创建一个简单的程序,从用户输入中获取两个数字并将它们相加。我已经记下了它的正确用法,但是如果用户输入了其他东西,比如字符串,我试图阻止崩溃。当我听说输入是不好的做法时,我如何能毫无例外地检查输入 理想情况下,我希望它只是重复最初的问题,要求输入一个数字。我想这是一个循环 即 询问用户第一个号码 如果不是int,请重复 询问用户第二个号码 如果不是int,请重复 做数学 编辑:所以到目前为止,我几乎已经得到了帮助。我使用了一些do-while循环来让它重复这个问题,直到输入是一个整数。但是现在,即使我输入一个整数,它仍会重复第一个while do循环。如果我输入某个内容!=整数它似乎跳到第二个,然后停止 编辑:新代码Java 检查用户输入是否为Int(无异常)?,java,exception,math,Java,Exception,Math,我正在尝试创建一个简单的程序,从用户输入中获取两个数字并将它们相加。我已经记下了它的正确用法,但是如果用户输入了其他东西,比如字符串,我试图阻止崩溃。当我听说输入是不好的做法时,我如何能毫无例外地检查输入 理想情况下,我希望它只是重复最初的问题,要求输入一个数字。我想这是一个循环 即 询问用户第一个号码 如果不是int,请重复 询问用户第二个号码 如果不是int,请重复 做数学 编辑:所以到目前为止,我几乎已经得到了帮助。我使用了一些do-while循环来让它重复这个问题,直到输入是一个整数。但
import java.util.Scanner;
public class App {
public static void main(String[] args) {
Scanner scan;
scan = new Scanner(System.in);
int firstNumber = Integer.MIN_VALUE;
int secondNumber = Integer.MIN_VALUE;
do {
System.out.print("Enter the first number to be added: ");
if (scan.hasNextInt()) {
firstNumber = scan.nextInt();
}
}
while(firstNumber != Integer.MIN_VALUE);
do {
System.out.print("Enter the second number to be added: ");
if (scan.hasNextInt()) {
secondNumber = scan.nextInt();
}
}
while(secondNumber != Integer.MIN_VALUE);
if ((firstNumber != Integer.MIN_VALUE) && (secondNumber != Integer.MIN_VALUE)) {
int sum = secondNumber + firstNumber;
System.out.println("That equals: " + sum);
}
scan.close();
}
}
旧代码
import java.util.Scanner;
public class calculate {
private static Scanner scan;
public static void main(String[] args) {
scan = new Scanner(System.in);
System.out.print("Enter the first number to be added: ");
int firstNumber = scan.nextInt();
System.out.println("Enter the second number to be added: ");
int secondNumber = scan.nextInt();
int sum = secondNumber + firstNumber;
System.out.println("That equals: "+ sum);
}
}
您只需使用:
if(scan.hasNextInt()) {//<-- get in if its a number
int firstNumber = scan.nextInt();
}
如果(scan.hasNextInt()){/以下操作应该有效:
Scanner scan;
scan = new Scanner(System.in);
int firstNumber = Integer.MIN_VALUE;
int secondNumber = Integer.MIN_VALUE;
while (firstNumber == Integer.MIN_VALUE) {
System.out.print("Enter the first number to be added: ");
if (scan.hasNextInt()) {
firstNumber = scan.nextInt();
} else {
scan.next();
}
}
while (secondNumber == Integer.MIN_VALUE) {
System.out.print("Enter the second number to be added: ");
if (scan.hasNextInt()) {
secondNumber = scan.nextInt();
} else {
scan.next();
}
}
if ((firstNumber != Integer.MIN_VALUE) && (secondNumber != Integer.MIN_VALUE)) {
int sum = secondNumber + firstNumber;
System.out.println("That equals: " + sum);
}
scan.close();
您可以使用“try catch”
boolean flag=false;
do
{
try
{
into firstno=scan.nesting();
flag=true;
}
catch(Exception e)
{
System.out.print("please insert only number");
}
}while(flag!=true);
使用try-catch可以捕获异常和消息最简单的方法是使用try-catch
块。@YanFoto我对Java非常陌生,但我想我会去搜索try-catch。你应该捕获输入不匹配的异常不要编辑你的问题,使其与其他内容有关。这会使每个人的答案无效。如果需要,请问一个新问题你还是不明白。@Teepeemm第一段是编辑。还没有人回答我的问题。我会将编辑安排在底部。它说如果有新的信息要添加,编辑初始问题,而不是打开新问题更新我的问题以反映一些变化,有什么想法吗?