因此,使用这段代码,程序会挂起并且不会退出循环,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。再次感谢您的帮助
答案 0 :(得分:2)
在for循环结束时,i
将始终等于 11 。也许你认为它会等于10?无论如何,将i
与while条件中的任何内容进行比较是没有意义的,因为您知道它始终是相同的值。
答案 1 :(得分:2)
添加&#34;休息;&#34;每当你将intialcollide设置为1.你的for循环在它进入while循环检查之前将值重置为0.