是while(布尔方法);一个不好的做法? (例)

时间:2014-10-21 14:12:04

标签: java

我真的很喜欢这段代码的机制和风格,但我有点不知道这种编码风格是适当的还是不好的做法。

public class Test 
{
    private static int counter;
    private final static ArrayList<Object> _objects = new ArrayList<>();

    public static void main(String[] args)
    {
        //iterate till you find a valid object randomly
        while (!doStuffIfValid(_objects.get(Rnd.get(_objects.size()))));
    }

    public static boolean doStuffIfValid(Object obj)
    {
        if (++counter > 30)
           return true; //dont try more than 30 times
        // if condition
        // {
        //      //do stuff then exit the caller loop
        //      return true;
        // }
        return false;
    }
}

2 个答案:

答案 0 :(得分:1)

好吧,

答案就在于布尔方法。如果那种方法膨胀,资源沉重;然后没有。

此外,如果您是在随机检查对象,最好是:从列表中消除您知道无效的对象,然后从该列表中随机选择。

这样,伪随机函数不会(偶然)选择无效对象进行验证,反复进行验证;和浪费时间/资源。

干杯。

答案 1 :(得分:0)

使用布尔方法作为while循环的条件没有任何问题。但是,循环头中的填充循环功能通常是一种不好的做法。它导致代码难以理解,调试(断点变得不方便)和维护。