2017-02-09 7 views
-2

Код работает хорошо, но когда я ввожу неправильное имя пользователя, он просто заканчивается без вывода. Любые советы или рекомендации для этого кода? Я знаю, что могу использовать if... else, но я пытаюсь сделать это с помощью switch.Пароль/имя пользователя с помощью переключателя

package frame.security; 
import java.util.Scanner; 

public class FrameIntel { 
    public static void main(String[] args) { 

     Scanner sc=new Scanner(System.in); 
     String Username; 
     System.out.println("Enter Username:"); 
     Username=sc.nextLine(); 
     String Password; 
     System.out.println("Enter Password: "); 
     Password=sc.nextLine(); 

     switch(Username) { 
     case"Winford Coloma": 
      if("TwelveEleven".equals(Password)) { 
       System.out.println("Senior Software Engineer"); 
       System.err.println("Limited Access to Sandbox!(4)"); 
       break; 
      } 
      else { 
       System.err.println("Access Denied!"); 
       System.exit(0); 
      } 
     case"Lynelle Marten": 
      if("TwelveSixteen".equals(Password)) { 
       System.out.println("Test Administrator"); 
       System.err.println("Limited Access to Sandbox!(5)"); 
       break; 
      } 
      else { 
       System.err.println("Access Denied"); 
       System.exit(0); 
      } 
     case"Luis Ansley": 
      if("TwelveTwenty".equals(Password)) { 
       System.out.println("Software Engineer"); 
       System.err.println("Controlled Access to Sandbox!(Clog)"); 
       break; 
      } 
      else { 
       System.err.println("Access Denied"); 
       System.exit(0); 
      } 
     case"Shantay Dority": 
      if("TwelveTwentyFour".equals(Password)) { 
       System.out.println("Programmer"); 
       System.err.println("Implement only(Sandbox)!"); 
       break; 
      } 
      else { 
       System.err.println("Access Denied"); 
       System.exit(0); 
      } 
     case"Tangela Norsworthy": 
      if("TwelveTwentySeven".equals(Password)){ 
       System.out.println("CEO"); 
       System.err.println("Full access to Sandbox!"); 
       break; 
      } 
      else { 
       System.err.println("Access Denied"); 
       System.exit(0); 
      } 


     } 

    } 
} 
+0

Здесь вам нужно 'default'. –

+0

[Раздел 'default' обрабатывает все значения, которые явно не обрабатываются одним из разделов' case'.] (Https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html) – alex

ответ

0

Вы не имеешь default заявления, так что ваш код будет работать только с именами пользователей, написанных в вашем case заявлении

0

Вы используете переключатель заявления без по умолчанию случае. Случай по умолчанию используется, если совпадение «случай» не совпадает.

добавить эти строки после того, как ваш случай "Tangela Norsworthy":

default: { 
    System.err.println("Username not recognised"); 
    System.exit(0); 
} 

0 в "System.exit();" указывает на то, что приложение завершается без проблем. Вы должны использовать другие значения как указание на наличие какой-либо проблемы. (i.e System.exit (1) -> 1 = неверное имя пользователя, System.exit (2) -> 2 = неверный пароль)

+0

Thank вы, получили его сейчас. – Silvervud1996