通过传递做while循环

时间:2015-12-08 18:26:45

标签: java do-while

我想知道是否可以跳过do while循环,或者如果满足某些条件,甚至可以在中途退出方法? 下面是一个我的意思的例子(一切都在这里工作)

  public void loanBook() {
            Scanner input = new Scanner(System.in);
            boolean successful = false;
            boolean bookExists = false;
            boolean memberIDExists = false;
            boolean memberCurrentlyLoaningBook = false;
            int memberID = 0;
            System.out.println("You must be a member of the library to loan out a book");
            do {
                System.out.println("\nPlease enter your memberID (Press 9 to exit)");
int bookID = input.nextInt();
                input.nextLine();
                if (bookID == 9) {
                    successful = true;
                }
                memberID = input.nextInt();
                for (int i = 0; i < members.size(); i++) {
                    if (memberID == members.get(i).getMemberID()) {
                        memberIDExists=true;
                        if(members.get(i).isCurrentlyLoaningBook()==false){
                            successful = true;
                            memberCurrentlyLoaningBook=true;
                        }
                    } 
                }

                if(!memberCurrentlyLoaningBook){
                    System.out.println("This member is currently loaning a book");
                }

                if (!memberIDExists) {
                    System.out.println("This member ID does not exist");
                }

            } while (successful == false);

EDIT do while循环使用相同的方法

做{这些其他做的while循环是在第一个之后并做其他事情     } while(); (我还没有把他们所做的事包括在内     做多空间     } while();

我有一个选项可以退出到主菜单,但是在此之后我也有一个while循环,所以每当我输入9时它只退出当前循环到while循环然后继续下一个循环,无论如何我可以跳过所有进程后按下9后循环,甚至退出方法?

2 个答案:

答案 0 :(得分:0)

在您的情况下scanf_s("%c", &x, (rsize_t)1) reduce可能有用。但是如果要退出方法,可以使用String result = strings.stream().reduce("", this::apply);

答案 1 :(得分:-1)

试试这个,我加了休息;当用户输入&#34; 9&#34;作为输入。然后它会从do while循环中出来。

            do {
                System.out.println("\nPlease enter your memberID (Press 9 to exit)");
                int bookID = input.nextInt();
                input.nextLine();
                if (bookID == 9) {
                    successful = true;
                    break;
                }
  

编辑:

是检查下一个循环,添加具有该循环的条件

loop(your original condition && !successful)
{
 }
  

编辑2:   要退出循环并避免在方法中进行其他do循环,你可以返回;   它将收回对该方法进行调用的程序的控制。

do {
                    System.out.println("\nPlease enter your memberID (Press                       9 to exit)");
                    int bookID = input.nextInt();
                    input.nextLine();
                    if (bookID == 9) {
                        successful = true;
                       return;
                    }