因此,使用这段代码,程序将挂起并且不会退出循环,仅将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/