因此,使用这段代码,程序将挂起并且不会退出循环,仅将printfs用于调试,并且它们并不是程序的组成部分。我对编程很陌生,因此我不确定所缺少的逻辑似乎应该起作用。非常感谢您抽出宝贵的时间查看此内容和您的帮助。

do
{
    intialcollide = 0;
    for(i=0; i<11; i++)
    {
        if(i != currentObj)
        {
            if(object[currentObj].new_loctX == object[i].new_loctX && object[currentObj].new_loctY == object[i].new_loctY)
            {
                intialcollide = 1;
            }
            else
            {
                intialcollide = 0;
            }
        }
        printf("%d\n", intialcollide);
    }
}while(intialcollide != 1 || i != 10);
printf("Collide? %d", intialcollide);


当我运行它时,我得到无限的1和0。再次感谢您的帮助

最佳答案

在for循环的末尾,i始终等于11。也许您认为它等于10?无论如何,将i与while条件中的任何内容进行比较都没有意义,因为您知道它始终是相同的值。

关于c - 卡在嵌套的do {for {if loop,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27350406/

10-13 01:22