#include <stdio.h>
#include <time.h>
void delay(int milliseconds) //by http://c-for-dummies.com/blog/?p=69
{
long pause;
clock_t now,then;
pause = milliseconds*(CLOCKS_PER_SEC/1000);
now = then = clock();
while( (now-then) < pause )
now = clock();
}
int main()
{
int i=1;
int j;
while(1)
{
switch (i)
{
case 1:
for(j=0; j < 10; j++)
{
printf("%d\n",j);
if(j==9)
{
printf("jump 2");
i=2;
}
}
break;
case 2:
printf("in 2");
delay(5000);
printf("jump 1");
i=1;
}
}
return 0;
}
所以我精简了一点。
现在应输出数字1-9,&#34;跳转2&#34;,&#34;在2&#34;然后延迟5秒,然后跳过1&#34;。
实际上它输出数字1-9,等待5秒然后输出&#34;跳跃2&#34; &#34;在2&#34;和&#34;跳1&#34;
答案 0 :(得分:1)
它只是缓冲。 - melpomene
一个简单的\ n或fflush(stdout)修复它...... - Manuel Burgstaller
答案 1 :(得分:-1)
这不是'跳跃&#39;如你所说。 你看到&#39;休息&#39;关键词?这将打破整个开关案例逻辑。
检查此链接: https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm