[英]Both branches are being executed in my if-else statement
當我要求教師輸入時,它將正確執行,直到打印輸出為止,然后它將打印輸入800號(僅要求學生輸入)。 我無法弄清楚為什么在您輸入教師后總是會問學生特定的問題。
public class UniversityIDApp {
public static void main(String[] args){
// display a welcome message
System.out.println("Welcome to the University ID application");
System.out.println();
Scanner sc = new Scanner(System.in);
String choice = "y";
while(choice.equalsIgnoreCase("y"))
{
// get user entries
String userType = Validator.getString(sc,
"Create student or faculty? (s/f): ", "s", "f");
String firstName = Validator.getString(sc,
"Enter first name: ");
String lastName = Validator.getString(sc,
"Enter last name: ");
String email = Validator.getString(sc,
"Enter e-mail: ");
if (userType.equalsIgnoreCase("f"))
{
String department = Validator.getString(sc,
"Enter department: ");
// create faculty object
Faculty f = new Faculty() {};
f.setFirstName(firstName);
f.setLastName(lastName);
f.setEmail(email);
f.setDepartment(department);
System.out.print("Southern Illinois University Faculty ");
System.out.print("\nName: " + f.getFirstName() + " " + f.getLastName() + "\n"
+ "Email: " + f.getEmail() + "\n" + "Department: " + f.getDepartment() + "\n" );
System.out.println();
}
else if(userType.equalsIgnoreCase("s"));
{
Student s = new Student() {};
String student800Number = Validator.getString(sc,
"Enter your 800 number: ");
s.setFirstName(firstName);
s.setLastName(lastName);
s.setEmail(email);
s.setStudent800Number(student800Number);
System.out.print("Southern Illinois University Student");
System.out.print("\nName: " + s.getFirstName() + " " + s.getLastName() + "\n"
+ "Email: " + s.getEmail() + "\n" + "Student 800 Number: " + s.getStudent800Number() + "\n" );
System.out.println();
}
System.out.print("Continue? (y/n): ");
choice = sc.next();
System.out.println();
}
}
您的else if
子句有分號;
使它什么也不做。
...
}
else if(userType.equalsIgnoreCase("s")); //<-- here
{
...
與此相同:
if ( true ) {
System.out.println("true");
} else if ( false ) {
;
}
{
System.out.println("false? what's going on?");
}
如果您將開括號放在同一行(這是Java的約定),可能會更容易發現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.