What would be the best way to test a condition infinately, I tried this but it shot up my cpu usage to 100 %

Code:
while(1) {
   if(condition)
      break;
}
The variable is a time variable and will only change once a second, so I put a system("sleep 1"); that fixed the cpu problem, but then you can't hit control-c to stop it. Is there a better way?