サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
1: 2011-02-17 (木) 10:42:06 k-tan ソース 現: 2024-01-08 (月) 12:58:54 lina ソース
Line 1: Line 1:
 +TITLE:x
* (5) gotoで繰り返し [#ba387db8] * (5) gotoで繰り返し [#ba387db8]
-(by [[K]], 2011.02.17) -(by [[K]], 2011.02.17)
-*** (1) [#dab6f4a9] +*** (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: 
 +*** (4) rei0023.c [#vb6d914c] 
 +-逆に100から減らしていってカウントダウンです。 
 + int a; 
 + a = 100; 
 + b: 
 + printf("%d ", a); 
 + if (a == 0) { goto c; } 
 + a = a - 1; 
 + wait(1000); 
 + goto b; 
 + c: 
 +*** (5) まとめ [#sff6342b] 
 +-今回は新しい命令の紹介としてwaitを、そして命令は新しくないもののこんなこともできるよという例としてifとgotoを使った繰り返し処理をやりました。 
 +-奇数だけ数える、偶数だけ数える、二倍ずつになっていく、逆に半分ずつになっていく、などいろいろ改造できます。減らす早さも自由自在です。

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。