ページへ戻る

+ Links

 印刷 

blike​/intro​/p0006 のバックアップソース(No.2) :: OSASK計画

osaskwiki:blike/intro/p0006 のバックアップソース(No.2)

« Prev  Next »
TITLE:x
* (5) gotoで繰り返し [#ba387db8]
-(by [[K]], 2011.02.17)
*** (1) rei0017.c~rei0019.c [#dab6f4a9]
-次のプログラムは、画面に1から5までの数字をひとつずつ出すプログラムです。
 printf("1 2 3 4 5");
-これを1から10までに改造しなさいといわれたらどうしますか?・・・そうですね、こうしますよね。
 printf("1 2 3 4 5 6 7 8 9 10");
-でも1から100までといわれたらどうしますか?・・・まあ100までせっせと書いてもいいですが、書き間違えるかもしれません。それに1000になったりしたらさすがにもう書く気はおきません。
-そんなときはこうします。新しい命令を使う必要なんてありません。もうここまでで十分に勉強できているのです。
 int a;
 a = 1;
 b:
 printf("%d ", a);
 if (a == 100) { goto c; }
 a = a + 1;
 goto b;
 c:
-これで100まで出ます。やったね!
-新しい命令はないですが、 a = a + 1; について説明しておくほうがいいかもしれません。これは、aに覚えていた数字に1を加えてそれを覚えなおすということです。
-変数とifとgotoがあれば、本当にいろいろなことができるのです。
*** (2) rei0020.c~rei0021.c waitで時間をかける [#z1186686]
-前回の rei0016.c みたいなゲームを作っていると、文字をもっとゆっくり書きたいなと思うことがあります。たとえば「あなたは...しんでしまった!」とか。そういうときはwait命令を使ってこうします。
 printf("あなたは...");
 wait(1000);
 printf("しんでしまった!");
-これで「あなたは...」のあと1秒待ってから「しんでしまった!」が表示されます。1000というのが1秒を表します。100なら0.1秒ですし、3000なら3秒です。
-もっとじれったくするのなら、こんなのはどうでしょうか?
 printf("あなたは");
 wait(500);
 printf(".");
 wait(500);
 printf(".");
 wait(500);
 printf(".");
 wait(500);
 printf("しんでしまった!");
-これだと全文が表示されるまで合計2秒かかることになります。・・・でも、やりすぎるとかえって嫌われるかもしれないので、演出はほどほどに(笑)。
*** (3) rei0022.c [#hc0d088f]
-おふろにはいってゆっくり100まで数えます。
 int a;
 a = 1;
 b:
 printf("%d ", a);
 if (a == 100) { goto c; }
 a = a + 1;
 wait(1000);
 goto b;
 c:

-(以下書き途中)


« Prev  Next »