2016-09-08 39 views
1

私は簡単なプログラムを作っています。すでに動作しています。私はすでに負数と100以上の数字を入力するように制限しています。私が今必要とするのは、ユーザに文字列や文字、それは数字ではありませんが、私は単に誰かが私を助けてくれるかわかりません:)。ユーザ入力制限

import java.util.Scanner; 
public class Average { 
public static void main(String[]args) { 
    double Math; 
    double Science; 
    double Filipino; 
    double English; 
    double sum; 
    double average; 
    Scanner input = new Scanner(System.in); 

    do{ 
    System.out.println("Please enter your grade in Math"); 
    Math = input.nextDouble(); 
    if(Math<0||Math>100){ 
     System.out.println("You entered "+Math+", which is an invalid grade, please try again.");} 
    } 
    while(Math<0||Math>100); 

    do{ 
    System.out.println("Please enter your grade in Science"); 
    Science = input.nextDouble(); 
    if(Science<0||Science>100){ 
     System.out.println("You entered "+Science+", which is an invalid grade, please try again.");} 
    } 
    while(Science<0||Science>100); 

    do{ 
    System.out.println("Please enter your grade in Filipino"); 
    Filipino = input.nextDouble(); 
    if(Filipino<0||Filipino>100){ 
     System.out.println("You entered "+Filipino+", which is an invalid grade, please try again.");} 
    } 
    while(Filipino<0||Filipino>100); 

    do{ 
    System.out.println("Please enter your grade in English"); 
    English = input.nextDouble(); 
    if(English<0||English>100){ 
     System.out.println("You entered "+English+", which is an invalid grade, please try again.");} 
    } 
    while(English<0||English>100); 

    sum = Math + Science + Filipino + English; 
    average = sum/4; 

    System.out.println("Your total average is: "+average); 

    if(average>=75){ 
     System.out.println("Remarks: Passed");} 
    else{ 
     System.out.println("Remarks: Failed");} 
} 

} 

答えて

0

入力ブロックをtryブロック内に置き、次のcatchブロックを使用します。

catch (NumberFormatException ex) { 
    //handle exception here 
} 
0

NumberFormatExceptionのJavaの組み込みチェックを使用できます。

String s = input.next(); 
double value = 0.0; 
try{ 
    value = Double.parseDouble(s); 
    //your code logic 
} catch(NumberFormatException e){ 
    System.out.println("Please Enter a number"); 
    //your logic to take input again 
} 
+0

という点で、私のコードのサンプル? –

+0

@KenjinSanMiguel私たちはあなたを助けるためにここにいます。はい、tryブロック内のループ中に全体を行います –

0

このようにしますか?

try{ 
do{ 
System.out.println("Please enter your grade in Math"); 
Math = input.nextDouble(); 
if(Math<0||Math>100){ 
    System.out.println("You entered "+Math+", which is an invalid grade, please try again.");} 
} 
while(Math<0||Math>100);} 
catch (NumberFormatException ex) { 

}

関連する問題