2014-03-19 130 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");} 
     } 
    } 
}