[問題] 跳出while迴圈
while(1)
{
if (step<4)
{
step++;
for(i=0;i<4;i++)
{
mx=pattern2[i].x;
my=pattern2[i].y;
if((h*16+available_now.x+mx*s)<0 || (h*16+15+available_now.x+mx*s)>=x)
continue;
if((v*16+available_now.y+my*s)<0 || (v*16+15+available_now.y+my*s)>=y)
continue;
if((available_now.x+mx*s)<-7 || (available_now.x+mx*s)>7 || (available_now.y+my*s)<-7 || (available_now.y+my*s)>7)
continue;
if(map[7+available_now.y+my*s][7+available_now.x+mx*s]==1)
continue;
search_num++;
map[7+available_now.y+my*s][7+available_now.x+mx*s]=1;
read_block(fip1,x,h,v,(available_now.x+mx*s),(available_now.y+my*s),ref,16,16); // read reference block from fip1
now=0;
for(k=0;k<16;k++)
{ // computing the MAD
for(j=0;j<16;j++)
now+=(long)abs(dif[k][j]=(unsigned int)cur[k][j]-(unsigned int)ref[k][j]);
if(now>min)
break;
} // end for computing the MAD
if(now<min)
{
available_next.x=available_now.x+mx*s;
available_next.y=available_now.y+my*s;
min=now;
}
} // end for one old candidate's check
if(available_now.x==available_next.x && available_now.y==available_next.y )
{ //問題點
available_now.x=available_next.x;
available_now.y=available_next.y;
step=1;
break;
}
available_now.x=available_next.x;
available_now.y=available_next.y;
}
}
我的問題是,在問題點那個if判斷式內的break,為何不能break掉這個while???
那要怎麼做才能在這個if判斷式為真情形,跳離這個while呢??
煩情懂的人指教!感激不盡`Orz...
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.64.128.54
推
03/06 11:02, , 1F
03/06 11:02, 1F
→
03/06 11:03, , 2F
03/06 11:03, 2F
推
03/06 11:09, , 3F
03/06 11:09, 3F
→
03/06 14:56, , 4F
03/06 14:56, 4F