広告
↓発売日:2018年09月22日↓
新品価格 |
プログラムの基本は
(1)上から順番に
(2)条件で分かれ道
(3)繰り返し
でしたね!
今回から最後の(3)くり返しをやっていきます!
本格的なプログラミングの始まりですね!
くり返し命令を誤って使うと無限ループ(ずっとくり返しでプログラムが止まらない状態)などに入ってコンピューターに負担をかけてしまう場合があるのできちんと理解して使いましょう!
通常の無限ループの場合は「ctrl + c」キーを押せば止まります。もしこれで止まらない場合はウィンドウ右上の「×」マークなどで無理やり止める事になります。
これでも止まらない時は近くの詳しい人に聞きましょう!
/*十日目 プログラム1*/ #include <stdio.h> int main(){ int suji; for(suji = 0;suji < 10;suji = suji + 1){ printf("%d ",suji); } printf("\n"); return 0; }
「for」命令でくり返し条件を決めて、{}カッコ内をくり返します。
そして変数「suji」の内容を「printf」命令で表示してます。
まず「int main()」の先頭でくり返し用の変数「suji」を用意します。そして「for」命令の登場です!
for( 初期化 ; 条件 ; 進み方 ); for(suji = 0;suji < 10;suji = suji + 1)
こちらを一つずつ見ていきましょう。
suji = 0
ここで最初の数を決めます。
suji < 10
次に条件を決めます。この場合は「変数「suji」が「10」より小さい間」という意味ですね!
変数「suji」が「10」になるとその時点でくり返しをやめるので実行結果が「9」で終わってますね。
ここを「suji <= 10」とすると実行結果の最後は「10」になります。
「if」命令の時に学んだ「suji <= 10」→「10を含む(ふくむ)」・「suji < 10」→「10を含まない(ふくまない)」を注意しましょう!
suji = suji + 1;
最後に進み方を決めます。この場合はくり返すたびに変数「suji」に「+1」されますね!
ここを「suji = suji + 2」とするとくり返すたびに変数「suji」が「+2」されるので結果は
0 2 4 6 8
のようになります。
くり返しの条件などをいろいろ変えて試してみましょう!
suji = suji + 1;
さきほど登場したこちらの文は
suji++;
と書き換えられます。これを「インクリメント」といいます。同じく
suji = suji - 1;
だった場合は
suji--;
と書き換えられます。こちらは「デクリメント」といいます。
よく使う書き方なので覚えましょう!
他にこんな書き方もできます。
suji = suji + 100;
↓
suji += 100;
や
suji = suji - 100;
↓
suji -= 100;
など。
同じように「*=,/=,%=」などなど。
慣れてきたら使ってみましょう!
広告
くり返し命令を制するものはプログラミングを制する!と言われるほどくり返しは大事なのでたくさん練習してレベルアップしましょう!
/*十日目 プログラム2*/ #include <stdio.h> int main(){ int kaisu; for(kaisu = 0;kaisu < 5;kaisu++){ printf("おはよう\n"); } return 0; }
まずはキホンですね!「kaisu」が「0~4」までくり返しして「5」でくり返しをやめます。最初の「0」から始まるので「0,1,2,3,4」と5回分くり返す事になります。
「10」までカウントして「3」の倍数がきたら「おいっす!」と叫んでみましょう!
/*十日目 プログラム3*/ #include <stdio.h> int main(){ int kaisu; for(kaisu = 0;kaisu <= 10;kaisu++){ printf("%d ",kaisu); if(kaisu == 3)printf("おいっす!\n"); if(kaisu == 6)printf("おいっす!\n"); if(kaisu == 9)printf("おいっす!\n"); } printf("\n"); return 0; }
くり返しをしている途中で「if」命令の条件が合えば「おいっす!」と表示します。
「10」までのカウントなので「for」命令の条件が「suji <= 10」となってますね!
くり返しを想像しながらプログラムを作りましょう!
/*十日目 プログラム4*/ #include <stdio.h> int main(){ int suji,suji2; suji2 = 4; for(suji = 0;suji < 5;suji++){ printf("suji = %d:suji2 = %d\n",suji,suji2); suji2--; } return 0; }
くり返し中一緒に他の変数「suji2」も変化させています。
「for」命令に入る前に「suji2」を初期化して、くり返すたびに「suji2--」しています。
ではくり返し命令の定番プログラム
「1 + 2 + 3 + 4 + 5 ~ 98 + 99 + 100」
と順番に足していく「100まで計算」プログラムを作ってみましょう!
/*十日目 プログラム5*/ #include <stdio.h> int main(){ int suji; int goukei = 0; for(suji = 0;suji <= 100;suji++){ goukei = goukei + suji; } printf("「100まで計算」答えは%dです!\n",goukei); return 0; }
合計を入れる為の変数「goukei」にひたすら増加し続ける変数「suji」を足し合わせております。
くり返し0回目 goukei(0) = goukei(0) + suji(0)
くり返し1回目 goukei(1) = goukei(0) + suji(1)
くり返し2回目 goukei(3) = goukei(1) + suji(2)
くり返し3回目 goukei(6) = goukei(3) + suji(3)
くり返し4回目 goukei(10) = goukei(6) + suji(4)
くり返し5回目 goukei(15) = goukei(10) + suji(5)
カッコの中身がその時の値です。
くり返しの動きを一回一回止めながらみていくプログラムです。一回一回何かキーを押してください。
/*十日目 プログラム6*/ #include <stdio.h> #include <conio.h> int main(){ int suji; int goukei = 0; for(suji = 0;suji <= 10;suji++){ goukei = goukei + suji; printf("%d ",goukei); (void)_getch(); } printf("\n"); return 0; }
このように動きを追う作業の事を「トレース」といいます。
最初なれないウチはこの「トレース」をきちんと行って中の変数の動きなどをしっかり追っていく事をオススメします!
頭の中で想像するだけだとちょっとツライですもんね!
今回はそんな「トレース」に便利な「_getch()」命令をご紹介します!一回一回入力待ちになるので「トレース」にぴったりです!
使い方はいつもの先頭に「#include <conio.h>」という一文を加えて、あとは止めたい場所に「_getch()」を書くだけです。
「scanf」命令とおなじように先頭に「void」とくっつけておいてください。(こんな感じでいくつかの命令の先頭に(void)とくっつける事があります!)
ちゃんとしたこの命令の使い方とは少し違いますが、便利なので使ってみてください!
次回はもう一つのくり返し「while」命令を紹介したいと思います。
どこまでくり返せばいいのかわからないけどくり返したい時や、途中でくり返しを抜ける方法などについても説明しておりますので今回の「for」命令と合わせてご覧ください。
広告
↓発売日:2016年02月29日↓
12歳からはじめる ゼロからのC言語 ゲームプログラミング教室 新品価格 |
↓発売日:2018年06月22日↓
新品価格 |
↓発売日:2018年03月09日↓
新品価格 |
↓発売日:2017年06月14日↓
新品価格 |
↓発売日:2018年05月21日↓
新品価格 |
↓発売日:2017年12月07日↓
新品価格 |
↓発売日:2017年02月08日↓
新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ) 新品価格 |
↓発売日:2017年09月26日↓
新品価格 |