两种写法那种执行效率高些?说明很详细,该如何处理

两种写法那种执行效率高些?说明很详细
下面两种代码那种运行快一点.注释就是变化的地方.
1,一种是直接循环里面进行双判断来实现.没有break; 第一个注释那里.
2,一种是在主循环最后有一个break;然后在 里面的判断里面再次使用循环来确认数值.
问题是:第一种会增加无用的循环和判断,减少运行速度.第二种是减少了循环和判断.但是增加了代码.哪种好呢?或者其他?

function ErrorValidator(TextBoxID) {
            for (var i = 0; i < TextBoxIDArray.length; i++) {
                if (TextBoxIDArray[i] == TextBoxID || TextBoxRuleArray[i] == TextBoxID) //改变的地方一
                {
                    var TextBoxValues = document.getElementById(TextBoxIDArray[i]).value; //获得需要验证的文本框的内容
                    var l; //验证的结果
                    if (SpecialTextBoxID[i] == 0) { //改变的地方二
                        l = Rule(TextBoxRuleArray[i], TextBoxValues); //执行正则表达式
                    }else if (SpecialTextBoxID[i] == 1) {
                        if (TextBoxValues == document.getElementById(TextBoxRuleArray[i]).value) {
                            l = true;
                        } else {
                            l = false;
                        }
                    } else if (SpecialTextBoxID[i] == 2) {
                        if (TextBoxValues == "") {
                            l = true;
                        } else {
                            l = Rule(TextBoxRuleArray[i], TextBoxValues);
                        }
                    }
                    else {
                        l = false;
                    }
                    //输出
                    return VerifiOutput(l, i);
                }
            }
        }

下面是代码二

function ErrorValidator(TextBoxID) {
            for (var i = 0; i < TextBoxIDArray.length; i++) {
                if (TextBoxIDArray[i] == TextBoxID) //改变的地方一
                {
                    var TextBoxValues = document.getElementById(TextBoxIDArray[i]).value; //获得需要验证的文本框的内容
                    var l; //验证的结果
                    if (SpecialTextBoxID[i] == 0) { //改变的地方二
                        l = Rule(TextBoxRuleArray[i], TextBoxValues); //执行正则表达式