import java.util.Scanner;
public class Hello{
public static void main(String[]args){
Scanner input=new Scanner(System.in);
System.out.println("Enter ur name");
String name=input.nextLine();
System.out.println("enter ur gpa");
double gpa=input.nextDouble();
System.out.println("Hi"+name+",ur gpa is "+ gpa);
}
}
我收到以下异常:
Exception in thread "main" java.util.InputMismatchException at
java.util.Scanner.throwFor(Scanner.java:909) at
java.util.Scanner.next(Scanner.java:1530) at
java.util.Scanner.nextDouble(Scanner.java:2456) at Hello.main(Hello.java:12)
如果正确传递了程序所期望的值(即字符串,然后是double),则该代码将可以正常工作。您可能要为其添加异常处理
Scanner input=new Scanner(System.in);
String name = "";
double gpa = 0;
boolean correctNameEnetered = false;
boolean correctGPAEneterd = false;
while(true){
try {
if(!correctNameEnetered){
System.out.println("Enter ur name");
name=input.nextLine();
correctNameEnetered = true;
}
}catch(InputMismatchException ex) {
System.out.println("Please provide String value for name");
continue;
}
try {
if(!correctGPAEneterd) {
System.out.println("enter ur gpa");
gpa = Double.parseDouble(input.next());
correctGPAEneterd = true;
}
}catch(NumberFormatException ex) {
System.out.println("Please provide an integer or decimal value for gpa");
continue;
}
break;
}
System.out.println("Hi"+name+",ur gpa is "+ gpa);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句