java - 为什么在打印第一个 if case 后 switch case 没有中断?

标签 java if-statement switch-statement case

在下面的 if 语句中,如果为 false,则会正确打印 else 语句。 “不存在具有此编号的订单,请创建一个新订单。” 如果为真,它也会正确打印第一个语句,但后面总是跟着 else 语句。为什么 break; 在打印第一个 if case 后没有终止?

case(3):{ 
              System.out.println("");
            System.out.println("Please Enter The Order Number: ");
            int orderno = input.nextInt();
            Iterator<Order> orderIterator3 = orders.getIterator();
            Order currentorder;
            String itemRemoved = null;
            StackInterface <String> newItems = new ArrayStack<String>();
            while ( orderIterator3.hasNext()) { //iterate through the list until an order  with a matching order no is found 
                currentorder = orderIterator3.next();  
            if(currentorder.getNumber() == orderno) { //access the Items in the list by their order number 
                newItems = currentorder.getItems(); //Copy the existing items into a new stack
                if (!newItems.isEmpty())
                itemRemoved = newItems.pop();
                 System.out.println("The last item: " + itemRemoved + "\n was successfully removed from your order!"); break;
                }//End if

            }//End While 
            System.out.println("No order with this number exists, please create a new order."); break;
          }// End Case 3

最佳答案

当您在 while-loop 内部中断时,您将中断 while-loop,而不是 case

有几种不同的方法可以实现此目的,但最简单的可能是添加一个 boolean 值,如果它应该打破这种情况,则将其设置为 true,例如:

boolean shouldBreak = false;
while( ... ) {
  if( ... ) {
    shouldBreak = true;
    break; // break out of the while.
  }
}
if(shouldBreak) {
  break; // break out of the switch/case.
} 

关于java - 为什么在打印第一个 if case 后 switch case 没有中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29715786/

相关文章:

bash - 无法访问bash中括号内的变量

java - 如何使用线程运行类的方法

java - 如何使用 Spring security 保护包含的页面

Java 输入流缓冲区对象?

haskell - 如何基于 if/then/else 语句定义变量

c - 替代 C 中的许多 case switch 语句

java - 如何使用Selenium WebDriver清除JS输入的值?

java - 查找另一个字符串中的多个字符串

javascript - 如何在两个var为true后添加+1

Javascript switch 语句——非常简单,我做错了什么?