2016-04-29 7 views
1

基本的に私は、ユーザーがファイル名 "badWords.txt"に表示される名前を入力すると、ユーザーに名前を入力するように求められたときにユーザーが作成されないプログラムを作成しようとしています続けることができます。ユーザーがドキュメントに見つからない名前を入力した場合にのみ、プログラムはループします。私はこれを下にしようとしていますが、悲惨に失敗しています。何か助けてもらえますか?私はキャッチステートメントで正しい2番目の部分をしたことを知っている、ちょうど最初の助けが必要です。ありがとうございました!Try-Catch Block Issue with Text

import java.util.Scanner; 
import java.util.Random; 
import java.io.*; 

public class NameExperiment 
    /** 
    * Prompts user ith 5 quick-fire addition problems, and times 
    * the user for the response provided. 
    */ 
    public static void main(String[] args) 
    { 
    Scanner in = new Scanner(System.in); 
    Random rand = new Random(); 

    System.out.print("Please enter your name: "); 
    String name = in.nextLine(); 
    try 
     { 
     Scanner badWords = new Scanner(new File("badWords.txt")); 
     } 
     while (badWords.hasNext()) 
     catch{ 
     { 
     if (name.equalsIgnoreCase(badWords.next())) 
     { 
     throw (new BadWordException("Watch your tongue")); 
    } 
} 
} 
     System.out.println("Hello " + name + 
    ". Please Answer the questions as fast as you can."); 


    for (int i = 0; i < 5; i++) 
    { 
    System.out.println("Hit <ENTER> when ready for a question."); 
    in.nextLine(); 

    int a = rand.nextInt(100); 
    int b = rand.nextInt(100); 

    long startTime = System.currentTimeMillis(); 

    System.out.print(a + " + " + b + " = "); 
    String response = in.nextLine(); 
    try 
    { 
    int number = Integer.parseInt(response); 

    long endTime = System.currentTimeMillis(); 




    String outcome = (number == a + 
    b) ? "Correct!" : "Incorrect."; 

    System.out.println(outcome); 
    System.out.println("That took " + (endTime - 
    startTime) + " milliseconds"); 

    } 
    catch (NumberFormatException exception) 
    { 
    System.out.print("Inappropriate Input: please enter a number."); 
    } 

    } 
    System.out.println("Thank you "+ name + ", goodbye."); 
    } 
    } 
    } 
+0

このコードは、Javaの構文的に有効ではありません。コンパイル可能なコードを投稿してください。 –

答えて

0

編集最初の部分とテスト今その作業

public class NameExperiment{ 
     /** 
     * Prompts user ith 5 quick-fire addition problems, and times 
     * the user for the response provided. 
     */ 
     public static void main(String[] args) throws IOException { 
      Scanner in = new Scanner(System.in); 
      Random rand = new Random(); 
      Scanner badWords = new Scanner(new File("src", "badWords.txt"));; 

      System.out.print("Please enter your name: "); 
      String name = in.nextLine(); 

      while (badWords.hasNext()) 
       if (name.equalsIgnoreCase(badWords.next())) 
       { 
        throw new NumberFormatException("Watch your tongue"); 
       } 
      System.out.println("Hello " + name +". Please Answer the questions as fast as you can."); 


      for (int i = 0; i < 5; i++) 
      { 
       System.out.println("Hit <ENTER> when ready for a question."); 
       in.nextLine(); 

       int a = rand.nextInt(100); 
       int b = rand.nextInt(100); 

       long startTime = System.currentTimeMillis(); 

       System.out.print(a + " + " + b + " = "); 
       String response = in.nextLine(); 
       try 
       { 
        int number = Integer.parseInt(response); 

        long endTime = System.currentTimeMillis(); 

        String outcome = (number == a + 
          b) ? "Correct!" : "Incorrect."; 

        System.out.println(outcome); 
        System.out.println("That took " + (endTime - 
          startTime) + " milliseconds"); 

       } 
       catch (NumberFormatException exception) 
       { 
        System.out.print("Inappropriate Input: please enter a number."); 
       } 

      } 
      System.out.println("Thank you "+ name + ", goodbye."); 
     } 
} 
+0

本当にありがとう、本当にありがとう、これは完璧に働いた!!!! – Alex

+0

あなたの歓迎仲間 – Hosseini