2016-12-07 15 views
0
#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、「ジャンプ2」、「イン2」、5秒後に「ジャンプ1」を出力する必要があります。

は、現実には、それは、数字1-9を出して5秒間待機してから、2の「ジャンプ2」「」と「あなたが言及したように、これは何の「ジャンプ」ではありません1」

+0

出力バッファリング、おそらく。しかし、あなたがhttp://stackoverflow.com/help/mcveを投稿しなかったので、確かに言うことは不可能です。 – melpomene

+0

http://c-faq.com/stdio/fflush.html – melpomene

+0

さて、私は自分の投稿を合理化しました。 –

答えて

-1

ジャンプを出します。 'break'キーワードが表示されますか?そうすれば、スイッチケース全体のロジックが破壊されます。

チェックこのリンク: https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm

+0

私は良い投稿をしなかったので、私はそのジャンプを考えたように見えたと思います。その周りの "while(1)"ループの次の実行で次のケースに入るはずです。 –

関連する問題