所以我试图制作一个简单的计算器。
当我输入第一个数字时,如何进行,但如果我插入" abc"它会给我一个错误。
当你写作时,我如何按顺序制作" abc"说"请输入一个号码"
import java.util.Scanner;
public class calculator
{
public static void main(String[] args0) {
Scanner test = new Scanner(System.in);
int x;
int y;
String c;
System.out.println("Insert a number ");
x = test.nextInt();
System.out.println("insert a value e.g * / + -");
c = test.next();
System.out.println("Insert another number");
y = test.nextInt();
if ( c.equals("*")) {
System.out.println("the total is " + x*y);
}
if (c.equals("+")) {
System.out.println("the total is " + (x+y));
}
if (c.equals("-")) {
System.out.println("the total is "+ (x-y));
}
if (c.equals("/")) {
System.out.println("the total is "+ (x/y));
}
}
}
答案 0 :(得分:5)
您可以使用扫描仪属性Scanner.hasNextInt()
Scanner scanner = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!scanner.hasNextInt()) scanner.next();
示例:
public static void main(String[] args0) {
Scanner test = new Scanner(System.in);
int x;
int y;
String c;
System.out.println("Insert a number ");
while (!test .hasNextInt()) test .next(); // Scanner Validation
int x = test .nextInt();
}
的JavaDoc
答案 1 :(得分:0)
您得到的错误是个例外。你实际上可以“捕获”你的异常,这样当它们出现时,你的程序不会中断,你可以做那个错误的原因(输出“请插入,只插入数值”反馈?)
您可以在try-catch blocks
找到有关try-catch块的一些信息答案 2 :(得分:0)
试试这个:
boolean success = false;
while (!success) {
try {
y = test.nextInt();
success = true;
} catch (InputMismatchException e) {
test.nextLine();
System.out.println("Please enter a number.");
}
}
答案 3 :(得分:0)
如果您愿意接受doubles
而不是ints
,则java双打有一个内置方法isNaN()
,其中NaN代表非数字。
if (Double.isNaN(doubleValue)) {
...
}
答案 4 :(得分:0)
试试这个:
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner test = new Scanner(System.in);
int x;
int y;
String c;
try {
System.out.println("Insert a number ");
x = test.nextInt();
System.out.println("insert a value e.g * / + -");
c = test.next();
System.out.println("Insert another number");
y = test.nextInt();
if (c.equals("*")) {
System.out.println("the total is " + x*y);
}
if (c.equals("+")) {
System.out.println("the total is " + (x+y));
}
if (c.equals("-")) {
System.out.println("the total is "+ (x-y));
}
if (c.equals("/")) {
System.out.println("the total is "+ (x/y));
}
} catch(InputMismatchException e) {
System.out.println("Please enter correct values.");
}
}
<强>修改:强>
由于输入类型错误,您获得的错误称为RunTime Error or Exceptions
。要处理RunTime Exceptions
,您需要使用try and catch block
。
try and catch blocks
用于处理RunTime Exceptions
。如果在try块中发生任何错误或异常,那么将抛出catch块来处理而不是终止你的程序。