2016-11-15 2 views
0

Javascriptトレーニングをラップして、先週金曜日に開始されたばかりの、無効なユーザー入力のアカウントに例外を追加するにはどうすればよいですか?ユーザーは名前を入力する必要があります。入力が名前でない場合は例外をスローする必要があります

  • プロンプトクラスに

  • の学生に関する情報を提供について尋ねるためにユーザー:私は、次のを求めての運動を(私はまだ完了していない太字すべてをしました)持っています特定の学生

  • は、ユーザーが送信した情報

  • に応じて適切な応答を与えるユーザーがanotについて学びたいかどうか尋ねます例外

  • はIndexOutOfBoundsExceptionを組み込むしようと はIllegalArgumentException

  • は、ユーザーのために、それは簡単で、無効なユーザー入力のための彼女の学生

  • アカウントは - どのような情報が利用可能であることを伝え

  • パラレルアレイを使用して学生データを保持

私は多分それはちょうど私のダムサルの脳だけれども...答えをStackOverflowのを洗い上げ、そして役に立つものをたくさん見つけましたが、すべての整数ではなく文字列に関連すると思わました。

「IndexOutOfBoundsExceptionと IllegalArgumentExceptionを組み込むようにしてください。」という命令は必須ではないので、それらを含める必要はありません。

役に立つヒントや指示がありましたら幸いです。私のコードを笑ってはいけませんが、建設的な批判は非常に義務付けられています。さらに騒ぎがなければ

import java.util.Arrays; 
import java.util.Scanner; 

public class Students { 
    private static String[] students = {"John", "Ben", "Lisa", "Stewart", "Cora"}; 
    private static int[] grades = {79, 86, 90, 89, 99}; 

    public static void main(String args[]) { 
     System.out.println(Arrays.toString(students)); 

     Scanner kb = new Scanner(System.in); 
     boolean userChoice = true; 
     String userInput; 
     String choice; 

     while(userChoice) { 
      System.out.println("Please enter a Student's name to get their grade: "); 

      userInput = kb.nextLine(); 

      getGrades(userInput); 

      System.out.println("Continue? (y/n)"); 

      choice = kb.nextLine(); 

      if (choice.equalsIgnoreCase("n")) { 
       userChoice = false; 
      } 
     } 
     kb.close(); 
    } 

    private static void getGrades(String userInput) { 
     int length = students.length; 

     for(int i = 0; i < length; i++) { 
      if(userInput.equals(students[i])) { 
       System.out.println(userInput + "'s " + "grade is: " + grades[i]); 
      } 
     } 
    } 
} 

これは私の出力の例を示します。

[ジョン、ベン、リサ、スチュワート、コーラ]

にスチューデントの名前を入力してください。彼らの等級を得る:

ベン

ベンのグレードは:86

続きますか?

リサ

リサの等級は次のとおりです:90

続行

は、学生の名前を入力してください(Y/N)

yは彼らの等級を取得しますか? (Y/N)

N

プロセスは、私はちょうどこの問題のヘルプのために、今日サインアップしたものの、このコミュニティは天の恵みとなっている、ところで終了コード0

で仕上げ私にはJavascriptを学んでいる間、これは正式なものです。

答えて

0

は自分でそれを考え出した:P

は、私の学生の配列からリストを作成し、学生の私のリストにユーザーの入力を比較する方法が含まれており、入力が学生と一致しない場合を使用して終了します配列では例外がスローされ、「有効な生徒の名前ではありません」と表示され、別の名前を入力するかどうかを尋ねられます。

import java.util.Arrays; 
import java.util.List; 
import java.util.Scanner; 

public class Students { 
    private static String[] students = {"John", "Ben", "Lisa", "Stewart", "Cora"}; 
    private static int[] grades = {79, 86, 90, 89, 99}; 
    private static String[] behavior = {"aggressive", "distractable", "attentive", "disruptive", "angelic"}; 
    private static List myList = Arrays.asList(students); 


    public static void main(String args[]) { 

     Scanner kb = new Scanner(System.in); 
     boolean userChoice = true; 
     String userInput; 
     String choice; 

     while(userChoice) { 

      System.out.println(myList); 

      System.out.println("Please enter a student's name (case-sensitive) to get their progress report: "); 

      userInput = kb.nextLine(); 

      try { 
       if (myList.contains(userInput)) { 
        getGrades(userInput); 
       } else { 
        throw new IllegalArgumentException(); 
       } 
      } catch (IllegalArgumentException e) { 
       System.out.println("Not a valid student's name"); 
      } 

      System.out.println("Would you like to enter another student's name? (y/n)"); 

      choice = kb.nextLine(); 

      if (choice.equalsIgnoreCase("n")) { 
       userChoice = false; 
      } 
     } 
    } 

    private static void getGrades(String userInput) { 
     for(int i = 0; i < students.length; i++) { 
      if(userInput.equals(students[i])) { 
       System.out.println(userInput + "'s " + "grade is " + grades[i] + " and they are " + behavior[i]); 
      } 
     } 
    } 
} 
関連する問題