陷入嵌套的do {for {if循环

时间:2014-12-08 02:15:55

标签: c loops

因此,使用这段代码,程序会挂起并且不会退出循环,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。再次感谢您的帮助

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

添加&#34;休息;&#34;每当你将intialcollide设置为1.你的for循环在它进入while循环检查之前将值重置为0.

相关问题