java - 更好的无中断 for 循环;

标签 java if-statement for-loop break

我想知道是否有比使用此中断实现更好的替代方案。我正在努力提高自己的能力,以下确实有效。只是我一直听说Break;作为一种简单的出路,并产生潜在的意大利面条代码,虽然这里没有发生,但仍然如此。

public void getWoodSoldRecently(){
    Calendar cal = Calendar.getInstance();
    cal.add(Calendar.WEEK_OF_YEAR, -2);
    for(Tree t : theTrees){
        if(t.getSimpleDateSold().getTime().after(cal.getTime()) && t.getHasBeenSold()==true){
            treesSold.add(t);
            System.out.println(t.getTreeId() + " " + t.getTreeType());
        }
        else{
            System.out.println("Nothing sold in the last 2 weeks");
            break; //Stop the above
        }
    }
}

如果没有中断,“过去 2 周内没有售出任何商品”将输出存储在数组中的金额。

最佳答案

我怀疑你实际上并不想打破这里。当然,您想继续保留其余的树 - 仅仅因为您发现一棵树与您的条件不符(例如,它尚未出售),这是否真的意味着不能您以后的 Collection 中有匹配的吗?

无论如何,您的方法显然很奇怪,因为它是一个 get 方法,它不返回任何内容,而是向现有集合添加值。 这是我要改变的第一件事。

关于java - 更好的无中断 for 循环;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294974/

相关文章:

java - 如何避免DefaultMessageListenerContainer自动启动?

excel - 接下来没有错误VBA

java - 处理这些 if 子句的更简洁的方法?

c - OpenMP 大大减慢了 for 循环

python - 增加循环内范围的上限不会使其永远运行

java - 如何在struts1.x中使用List<String>设置文本框的标题?

java - 如何将循环中的值放入数组列表中?

java - 无法在现有面板上画线

if-statement - 需要重构 Arrow 反模式的想法

PHP - 无法访问已选中的复选框值