在C中的任何时候退出循环

时间:2012-11-24 13:51:35

标签: c

  

可能重复:
  Exit a loop at anytime

抱歉,我有另一个问题。如果我改变'time_t end = time(0)+ 1;'到'time_t end = time(0)+ 5;'...然后我的程序不会立即退出循环,但在5秒后退出。如何更改它以立即退出循环?让我们说如果它是一分钟,因为我正在创建一个程序,一个停车计时器,您可以随时退出循环索取退款。参考下面的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
    int b=0, i;
    int seconds;
    printf("\nEnter number of seconds : ");
    scanf("%d", &seconds);
    while (b==0)
    {
        b=kbhit();
        for(i=1;i<=seconds;i++)
        {
            while (b==0)
            {
                b=kbhit();
                time_t end = time(0) + 5; //5 seconds delay.
                while(time(0) < end)
                {
                    b=kbhit();
                }
                seconds -= 5;
                printf("Number of seconds left : %d\n", seconds);
                b=kbhit();  
            }
        }
        if(seconds == 0)
        {
            exit(0);
        }
        b=kbhit();
    }
    printf("Number of remaining seconds left : %d\n", seconds);
}

1 个答案:

答案 0 :(得分:0)

使用break是退出循环的更好解决方案