我想知道是否可以跳过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后循环,甚至退出方法?
答案 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;
}