【发布时间】:2015-04-18 10:04:41
【问题描述】:
在下面的 if 语句中,如果它是 false,它将正确打印 else 语句。 "No order with this number exists, please create a new order." 如果它是真的,它也会正确打印第一条语句,但它后面总是跟着else 语句。如果打印了第一个案例,为什么break; 不终止?
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
【问题讨论】:
-
因为你没有
break声明。 -
它破坏了封闭的while(),因此无法破坏开关。
-
System.out.println("The last item: " + itemRemoved + "\n was successfully removed from your order!"); break; -
请格式化您的代码,使其可读。
-
那么我该在哪里休息呢?
标签: java if-statement switch-statement case