How can I make my program only input specific words, if anything other than said word is entered, retry input

huangapple go评论69阅读模式
英文:

How can I make my program only input specific words, if anything other than said word is entered, retry input

问题

import java.util.*;

public class CheckMarkEnroll {
    public void Enroll() {
        Scanner in = new Scanner(System.in);
        Scanner sc = new Scanner(System.in);

        int i = 0;
        String studentlogin = "u123";
        // Unit name
        String english = "Math";
        String history = "History";
        String sports = "Sports";
        String photography = "Photography";
        String music = "Music";

        String musicfee = "$1320";
        String englishfee = "$1890";
        String historyfee = "$1890";
        String sportsfee = "$1600";
        String photographyfee = "$1500";

        String studentId = "";
        String course1 = "";
        String course2 = "";
        String course3 = "";

        // ============================================START OF PROGRAM==================================================================//
        System.out.println("Welcome to student enrollment");
        System.out.println("Please enter your student ID");

        studentId = in.nextLine();

        System.out.println("Please enter name of units you would like to enroll into. You may enroll into only 4 units. Upon entering please enter if this is your first time or you are repeating this unit. At the end your fees required will be shown");
        System.out.println("List of units available to enroll:");
        System.out.println("music");
        System.out.println("english");
        System.out.println("history");
        System.out.println("sports");
        System.out.println("photography");

        System.out.println("Please enter name of unit #1 : ");
        course1 = sc.nextLine();

        System.out.println("Please enter name of unit #2 : ");
        course2 = sc.nextLine();

        System.out.println("Please enter name of unit #3 : ");
        course3 = sc.nextLine();
    }
}
英文:

I want to make a registration program. So there is 5 enrollments possbiel, lets say music, English, history, sports, photography. I want to make it so it will ask the user to enter to enroll into only 3 units out of the 5 options listed above. only those 5 are the options, if anything else is entered say like "math" or "jdwhagdwa" then it will ask the user to re enter it. Once the student enters the unit it should tell them the classes they have enrolled into and the fee for each class

import java.util.*;
public class CheckMarkEnroll
{    
public void Enroll()
{    
Scanner in = new Scanner(System.in);
Scanner sc = new Scanner(System.in);
int i = 0;
String studentlogin = "u123";
//Unit name
String english="Math";
String history="History";
String sports="Sports";
String photography="Photography";
String music="Music";             
String musicfee ="$1320";
String englishfee="$1890";
String historyfee="$1890";
String sportsfee="$1600";
String photographyfee="$1500";
String studentId="";
String course1="";
String course2="";
String course3="";
//============================================START OF 
PROGRAM==================================================================//
System.out.println("Welcome to student enrollment");
System.out.println("Please enter your student ID");
studentId = in.nextLine();
System.out.println("Please enter name of units you would like to enroll into. You may enroll 
into only 4 units. Upon entering please enter if this is your first time or you are 
repeating this unit. At the end your fees required will be shown"); 
System.out.println("List of units available to enroll:");
System.out.println("music");
System.out.println("english");
System.out.println("history");
System.out.println("sports");
System.out.println("photography");
System.out.println("Please enter name of unit #1 : ");
course1= sc.nextLine();
System.out.println("Please enter name of unit #2 : ");
course2= sc.nextLine();
System.out.println("Please enter name of unit #3 : ");
course3= sc.nextLine();
}
}

答案1

得分: 1

Set courses = new HashSet<>();
Set possibleCourses = new HashSet<>();
possibleCourses.add(english);
possibleCourses.add(history);
possibleCourses.add(sports);
possibleCourses.add(photography);
possibleCourses.add(music);

System.out.println("List of units available to enroll: " + possibleCourses);

while (courses.size() < 3) {
System.out.println("Please enter name of unit #" + (courses.size() + 1) + " : ");
String course = sc.nextLine();
if (!possibleCourses.contains(course)) {
System.out.println("Please enter a valid course name! Your options are: " + possibleCourses);
continue;
}
if (!courses.contains(course)) {
courses.add(course);
} else {
System.out.println("You have already taken course: " + course);
}
}

System.out.println("You have taken the courses: " + courses);

英文:

You could work with Sets (or any Collection). One containing all your possible courses and one that saves your entered courses.

Set&lt;String&gt; courses = new HashSet&lt;&gt;();
Set&lt;String&gt; possibleCourses = new HashSet&lt;&gt;();
possibleCourses.add(english);
possibleCourses.add(history);
possibleCourses.add(sports);
possibleCourses.add(photography);
possibleCourses.add(music);
System.out.println(&quot;List of units available to enroll: &quot; + possibleCourses);
while (courses.size() &lt; 3) {
System.out.println(&quot;Please enter name of unit #&quot; + (courses.size() + 1) + &quot; : &quot;);
String course = sc.nextLine();
if (!possibleCourses.contains(course)) {
System.out.println(&quot;Please enter a valid course name! Your options are: &quot; + possibleCourses);
continue;
}
if (!courses.contains(course)) {
courses.add(course);
} else {
System.out.println(&quot;You have already taken course: &quot; + course);
}
}
System.out.println(&quot;You have taken the courses: &quot; + courses);

huangapple
  • 本文由 发表于 2020年10月21日 13:46:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/64457355.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定