首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有不断增长的逻辑数字的多个if语句

具有不断增长的逻辑数字的多个if语句
EN

Stack Overflow用户
提问于 2014-03-05 03:17:52
回答 2查看 68关注 0票数 2

在学校的作业中,我正在通过蛮力做一些模式挖掘(我知道有更好的方法,这就是分配它的方式)。我遇到了以下情况..。

代码语言:javascript
复制
 if (theSetLength == 1) {
        for (int i = 0; i < 100000; ++i) {
            if (itemArrays[i].getItem(theSetInt[0]) == true) ++counter;
        }
    }

    if (theSetLength == 2) {
        for (int i = 0; i < 100000; ++i) {
            if (
                itemArrays[i].getItem(theSetInt[0]) == true &&
                itemArrays[i].getItem(theSetInt[1]) == true
                ) ++counter;
        }
    }

    if (theSetLength == 3) {
        for (int i = 0; i < 100000; ++i) {
            if (
                itemArrays[i].getItem(theSetInt[0]) == true &&
                itemArrays[i].getItem(theSetInt[1]) == true &&
                itemArrays[i].getItem(theSetInt[2])
                ) ++counter;
        }
    }

这将持续到20的长度。有更简单的方法来写这个吗?具体来说,我需要所有的20个如果声明,还是有更好的方法?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-05 03:22:44

试试这个:

代码语言:javascript
复制
for (int i = 0; i < 100000; ++i) {
    boolean all = true;
    for (int j = 0; j < theSetLength && all; ++j) {
        if (!itemArrays[i].getItem(theSetInt[j]))
            all = false;
    }
    if (all) ++counter;
}

上面的代码将根据theSetLength的值测试适当数量的项,该值是在上述代码段之前定义和分配的。

票数 3
EN

Stack Overflow用户

发布于 2014-03-05 03:31:16

不如:

代码语言:javascript
复制
int counter = 0; 

for(int theSetLength=1; theSetLength <= 20; theSetLength ++){
      for (int i = 0; i < 100000; ++i) {
                for(int j=0; j < theSetLength; j++){  
                  if (itemArrays[i].getItem(theSetInt[j]) == false) break;
                } 
                if(j == theSetLength) 
                    ++counter;
            }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22187811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档