当有按键发生时,程序结束,不知道放的位置是不是很正确?该如何解决

当有按键发生时,程序结束,不知道放的位置是不是很正确?
#include<conio.h>
#include<graphics.h>
#include<time.h>
#include<stdlib.h>

main()
{
    int i,j;
    int color[7]={0xff6633,0x0000ff,0xff3366,0x33cc7f,0x00ff00,0xff0000,0xffffff};  
    int cnt1,cnt2;

    initgraph(600,480);
    srand((unsigned)time(NULL));
    
    while(1)
    {
        /*if(kbhit()) break; */    /* 原本是准备放在这里,但是执行时候发现无法实现有按键时程序结束 */
        cnt1=rand()%7;             /* 但是当圆变大后,再变小到最后圆的半径为0时,此时按任意键可以  */
        for(i=0;i<200;i++)         /* 结束循环,因此是不是此处也必须要有一个kbhit()函数              */
        {
            if(kbhit())goto A;     /* kbhit() 函数用在此处时,有按键可以结束循环 */
            setcolor(color[cnt1]);       
            circle(300,240,i);        
            Sleep(30);                

            setcolor(0x000000);
            circle(300,240,i);
        }

        cnt2=rand()%7;
        for(j=i;j>=0;j--)
        {
            if(kbhit())goto A;
            setcolor(color[cnt2]); 
            circle(300,240,j);
            Sleep(30);

            setcolor(0x000000);
            circle(300,240,j);
        }
    }
    A:getch();
    closegraph();
}

------解决方案--------------------
只能执行哈看看是不是完成哦你想要的功能了!
------解决方案--------------------
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!