2014-03-31 34 views
-5

在我的代码下面,我不知道什么命令才能正常工作。如何添加for循环到if语句?

我首先希望它打印出来供用户选择它做一个选择,那么,如果他们选择1它会询问他们的名字,并与环路进行验证等

当我输入一个名称开始只是循环输入你的名字的问题,我不知道如何解决它。

我是否需要为我的程序添加更多的语句,如果我这样做,那么我是否仍然可以使用if语句让用户选择一个选项?

import java.util.Scanner; 

public class username { 

    public static void main(String[] args) { 

     { 
      int UseLift; 
      int AuditReport; 
      int ExitLift; 
      int a; 

      UseLift = 1; 
      AuditReport = 2; 
      ExitLift = 3; 
     } 

     System.out.println("choose an option"); 
     System.out.println("Uselift(1)"); 
     System.out.println("see audit report(2)"); 
     System.out.println("Exit Lift(3)"); 

     Scanner d = new Scanner(System.in); 
     int a = d.nextInt(); 

     Scanner kb = new Scanner(System.in); 
     // array containing usernames 
     String[] name = {"barry", "matty", "olly", "joey"}; // elements in array 

     if (a == 1) { 
      System.out.println(" Enter your name "); 
     } 

     String name1 = kb.nextLine(); 
     boolean b = true; 
     int j = 0;// counter will start at 0 
     outerloop: 

     while (j < 3) { 
      System.out.println("Enter your name"); 
     } 

     for (int i = 0; i < name.length; i++) { 
      if (name[i].equals(name1)) { 
       System.out.println("you are verified you may use the lift, calling lift "); 
      } 
      break;// to stop loop checking names 
     } 
     System.out.println("Username Invalid"); 
     j++; 

     if (a == 2) { 
      System.out.println(""); 
     } 

     if (a == 3) { 
      System.out.println(" Please Exit Lift "); 
     } 
    } 
} 
+3

你打算使用的Java /在你的生活进一步做编程?如果是这样,我建议花费2小时阅读java语法概述,只需通过oracle官方教程即可。 – kiruwka

+0

不,我没有很大的帮助@kiruwka – user3151959

+0

好吧,如果你不这样做,我想它没有任何意义来解释你如何改变你的代码,它更快地写你工作快照。它会帮助吗? – kiruwka

回答

2

在这里你去:

public static void main(String... args) { 

    String[] verifiedNames = { "barry", "matty", "olly", "joey" }; 
    System.out.println("choose an option"); 
    System.out.println("Uselift(1)"); 
    System.out.println("see audit report(2)"); 
    System.out.println("Exit Lift(3)"); 

    Scanner scanner = new Scanner(System.in); 
    int choice = scanner.nextInt(); 

    switch (choice) { 
    case 1: 
     scanner.nextLine(); // get '\n' symbol from previous input 
     int nameAttemptsLeft = 3; 
     while (nameAttemptsLeft-- > 0) { 
      System.out.println(" Enter your name "); 
      String name = scanner.nextLine(); 

      if (Arrays.asList(verifiedNames).contains(name)) { 
       System.out.println("dear " + name + " you are verified " + 
         "you may use the lift, calling lift "); 
       break; // break out of loop 
      } 
     } 
     if (nameAttemptsLeft < 0) { 
      System.out.println("Username Invalid"); 
     } 
     break; 

    case 2: 
     System.out.println("option 2"); 
     break; 
    case 3: 
     System.out.println(" Please Exit Lift "); 
     break; 
    } 

    scanner.close(); 

} 
+0

@ user3151959欢迎。我知道有人问编程问题,对于学习如何编写代码并不是很感兴趣,但我认为这很正常。我仍然鼓励你只是通过代码,看看你是否理解了将来修改它的逻辑。顺便说一句,没有必要的循环,你可以看到。 – kiruwka

+0

一个问题抱歉,您删除了用户名的尝试,用户可以尝试3次尝试@kiruwka – user3151959

+1

@ user3151959我更新了代码,并尝试使用计数器 – kiruwka

2

你而下面循环:

while (j < 3) { 
    System.out.println("Enter your name"); 
} 

将永远循环下去,因为J是不可递增(J ++)。我相信你在某些时候与花括号不匹配。

+0

它停止了循环,但是现在它不会打印出信号是否有效或者没有任何想法? @alyawn – user3151959