我正在为我的学校项目创建一个购物车管理器,有一个从购物车中删除物品的方法。
public String removeItem(String itemName) {
String removeOutput = "Something is wrong";
int CAPACITY = 10;
ShoppingCartManager SCM = new ShoppingCartManager();
System.out.println("Enter name of the item:");
itemName = SCM.input.nextLine();
for(int i=0; i < CAPACITY; i++) {
if(itemNames[i] != null) {
if(itemNames[i].equals(itemName)) {
itemNames[i] = null;
costs[i] = 0;
for(int j=0; j < CAPACITY; j++) {
if(cartItems[j].toString().contains(itemName)) {
for(int k = 0; k < quantities[i]; k++) {
cartItems[j + k] = null;
}
break;
}
}
quantities[i] = 0;
removeOutput = ("["+itemName+"] is removed from your shopping cart. ");
break;
} else {
removeOutput = ("["+itemName+"] not found in cart. ");
}
}
}
return removeOutput;
}
这是我所能做的最好的结果,正如预期的那样,我只是好奇是否有可能简化方法中的超长嵌套循环。
1条答案
按热度按时间iezvtpos1#
您还可以使用保护子句来“取消嵌套”嵌套的if语句。在这里,您可以指定跳过数据的条件,而不是指定继续处理数据所需的条件
可提取用于:
当然,如果嵌套了更多的if条件,那么可以将它们全部提取出来,以使其更具可读性。
至于嵌套的for循环,这取决于你对处理数据结构的过程的认识程度。你能在一个for循环中完成它吗?你能把其中一个循环提取到一个方法中并调用它,这样即使它仍然是一个嵌套的for循环,代码看起来也更可读吗?