2014-03-19 126 views
0
package project2; 

import java.util.*; 

public class Project2 { 

public static void main(String[] args) { 

    String Name; 
    int age; 

    Scanner input = new Scanner(System.in); 

    System.out.print("Enter your age : "); 
    age = input.nextInt(); 
    if (age>=16){ 
     System.out.println("Your good to go");} 
    else if ((age>=1)&&(age<=15)){  
     System.out.println("Your not allowed to Procced");} 
    else{ 
     System.out.println("Out of range");} 
    } 
} 

对不起新手:/。所以我有这个问题,当我输入“输入你的年龄”字母是显示当输入字符/字符串而不是整数时输出错误

输入您的年龄:Q

异常线程“main” java.util.InputMismatchException

在java.util中.Scanner.throwFor(Scanner.java:909)

在java.util.Scanner.next(Scanner.java:1530)

在java.util.Scanner.nextInt(Scanner.java:2160)

在java.util.Scanner.nextInt(Scanner.java:2119)

在project2.Project2.main(Project2.java:14)

Java结果:1

我想,如果我输入它显示的任何字母“输入无效”。谁能帮我? [对不起英语]

+0

你是怎么想到发生? – immibis

+1

'q'不是'int','nextInt()'需要一个整数吗? –

+0

我想要如果键入一个字母它显示“输入无效” – Hakz

回答

1

如果我输入任何字母,它会显示“输入无效”。谁能帮我?

捕获异常,并打印消息,如在下面 -

try{ 
    System.out.print("Enter your age : "); 
    age = input.nextInt(); 
}catch(RuntimeException ex){ 
    System.out.println("Invalid input"); 
} 
+0

嘿Subhrajyoti Majumder!谢谢! :) – Hakz

0

你有没有问别人他的年龄,他告诉你:q?这不是一个年龄,也不是一个int

你得到例外因为nextInt

throws InputMismatchException - 如果下一个标记不匹配 Integer正则表达式,或超出范围

0

input.nextInt()阅读INT之前,请与input.hasNextInt(),这将读就足以判断它是否是一个int或没有(但将它留给nextInt来读取;它不会搞砸任何东西),然后返回它。

if(!input.hasNextInt()) 
    System.out.println("Not an int"); 
else 
{ 
    int age = input.nextInt(); 
    // other code here 
} 
0

试试这个:

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 
     int age = 0; 
     boolean isContinue = true; 
     do { 
      try { 
       System.out.print("Enter your age : "); 
       String age1 = input.next(); 
       age = Integer.parseInt(age1); 
       isContinue = false; 
       if (age >= 16) { 
        System.out.println("Your good to go"); 
       } else if ((age >= 1) && (age <= 15)) { 
        System.out.println("Your not allowed to Procced"); 
       } else { 
        System.out.println("Out of range"); 
       } 
      } catch (NumberFormatException e) { 
       System.out.println("Not an valid age"); 
      } 
     } while (isContinue); 

     System.out.println("other code"); 
    } 
0

以输入的字符串,并检查它是否是一个数字

Scanner input = new Scanner(System.in); 
    System.out.print("Enter your age : "); 
    String rawAge = input.next(); 
    try { 
     int age = Integer.parseInt(rawAge); 
     System.out.println("Age: " + age); 
     // Do something with age 
    } catch (NumberFormatException e) { 
     System.out.println("Invalid input for age"); 
    } 
0

使用异常处理

import java.util.*; 

public class crack 
{  
    public static void main(String[] args) 
    { 
     String Age; 
     Scanner input = new Scanner(System.in); 
     System.out.print("Enter your age : "); 
     Age = input.nextLine(); 
     try 
     { 
      int age = Integer.parseInt(Age); 
      if (age>=16) 
      { 
       System.out.println("Your good to go"); 
      } 
      else if ((age>=1)&&(age<=15)) 
      {  
       System.out.println("Your not allowed to Procced"); 
      } 
     } 
     catch(NumberFormatException nFE) 
     { 
      System.out.println("out of range");} 
     } 
    } 
}