首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有If条件的for循环中的方法

带有If条件的for循环中的方法
EN

Stack Overflow用户
提问于 2017-01-26 03:33:51
回答 2查看 58关注 0票数 1

我正在尝试通过按特定顺序迭代游戏板中的几个条目来检查它们。现在我注意到的是,当我的junit测试调用该方法时,它被卡在第一个for循环中,不会继续下一个循环,只返回false,这意味着它跳到方法的末尾。当我运行一个只需要前3个循环的测试时,它就可以工作了,但是另一个测试需要第二个循环,它不会被执行。

问:为什么在没有检查其他循环的情况下就跳到了最后?

代码语言:javascript
复制
    public boolean hasDiagonal(Mark m) {

    for (int i = 0; i <= dimension-4; i++) {
        for (int j = 0; j <= dimension-4; j++) {
            for (int k = dimension-1; k == 3; k--) {
                if (getField(i  , j  , k  ) == m &&
                    getField(i+1, j+1, k-1) == m &&
                    getField(i+2, j+2, k-2) == m &&
                    getField(i+3, j+3, k-3) == m) {
                        return true;
                    //Stops here, if this part doesn't yield true,
                    //it returns false immediately
                }
            }
        }
    }

    //This doesn't get checked
    for (int i = dimension-1; i == 3; i--) {
        for (int j = 0; j <= dimension-4; j++) {
            for (int k = dimension-1; k <= 3; k--) {
                if (getField(i  , j  , k  ) == m &&
                    getField(i-1, j+1, k-1) == m &&
                    getField(i-2, j+2, k-2) == m &&
                    getField(i-3, j+3, k-3) == m) {
                        return true;
                }
            }
        }
    }
    return false;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-26 03:45:58

循环的条件部分应该是这里的问题所在-

代码语言:javascript
复制
for (int i = 0; i <= dimension-4; i++) {
    for (int j = 0; j <= dimension-4; j++) {
        for (int k = dimension-1; k == 3; k--)

最里面的循环仅在dimension == 4时执行,因为循环中没有对此变量进行任何修改。

如果您执行j++i++,同时检查i/j <= dimension(4)-4是否解析为i/j <= 0,最外层和第二个循环甚至不会迭代超过一次(该块将只执行一次)。

因此,循环当然需要更好地处理指定的维度和相应的修改条件。

票数 1
EN

Stack Overflow用户

发布于 2017-01-26 03:39:41

我怀疑您的循环条件中的i == 3k == 3至少会导致您的问题。在这些条件下,除非为dimension == 4,否则循环将被跳过。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41860120

复制
相关文章

相似问题

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