没有休息的循环更好;

Mel*_*lky 0 java for-loop if-statement 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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果没有中断,"过去两周内没有出售任何东西"将输出存储在阵列中的金额.

Jon*_*eet 6

我怀疑你实际上并不打算在这里打破.当然你只想继续使用剩下的树木 - 只是因为你发现棵树不符合你的条件(例如它没有被出售),这是否真的意味着你的树木后期不会有任何匹配的树木采集?

无论如何,你的方法显然是奇怪的,因为它是get一种不返回任何东西的方法,但是为现有的集合添加了值.这是我改变的第一件事.