C言語 入門 小学生でもわかるC言語

十日目 くり返し「for」命令

「わかりやすく!」がテーマです!

HOME/小学生でもわかるC言語 目次/十日目 くり返し「for」命令/

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

?と思ったら

わからなそうな用語集

くり返し「for」命令

プログラムの基本は

(1)上から順番に
(2)条件で分かれ道
(3)繰り返し

でしたね!

今回から最後の(3)くり返しをやっていきます!

本格的なプログラミングの始まりですね!

注意

くり返し命令を誤って使うと無限ループ(ずっとくり返しでプログラムが止まらない状態)などに入ってコンピューターに負担をかけてしまう場合があるのできちんと理解して使いましょう!

通常の無限ループの場合は「ctrl + c」キーを押せば止まります。もしこれで止まらない場合はウィンドウ右上の「×」マークなどで無理やり止める事になります。

これでも止まらない時は近くの詳しい人に聞きましょう!

数字を一つずつ上げていきます。

/*プログラム24*/
#include <stdio.h>

int main(){
	int suji;
	
	for(suji = 0;suji < 10;suji = suji + 1){
		printf("%d ",suji);
	}

	printf("\n");

	return 0;
}

■実行結果■

実行結果(b-10-1)

■説明■

「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--;

と書き換えられます。こちらは「デクリメント」といいます。

よく使う書き方なので覚えましょう!

たくさん練習しましょう!

くり返し命令を制するものはプログラミングを制する!と言われるほどくり返しは大事なのでたくさん練習してレベルアップしましょう!

練習その1・・・「おはよう」を5回表示する。

/*プログラム25*/
#include <stdio.h>

int main(){
	int kaisu;

	for(kaisu = 0;kaisu < 5;kaisu++){
		printf("おはよう\n");
	}

	return 0;
}

■実行結果■

実行結果(b-10-2)

■説明■

まずはキホンですね!「kaisu」が「0〜4」までくり返しして「5」でくり返しをやめます。最初の「0」から始まるので「0,1,2,3,4」と5回分くり返す事になります。

練習その2・・・「if」命令と組み合わせる。

「10」までカウントして「3」の倍数がきたら「おいっす!」と叫んでみましょう!

/*プログラム26*/
#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;
}

■実行結果■

実行結果(b-10-3)

■説明■

くり返しをしている途中で「if」命令の条件が合えば「おいっす!」と表示します。

「10」までのカウントなので「for」命令の条件が「suji <= 10」となってますね!

くり返しを想像しながらプログラムを作りましょう!

練習その3・・・他の変数も一緒に変化させる。

/*プログラム27*/
#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;
}

■実行結果■

実行結果(b-10-4)

■説明■

くり返し中一緒に他の変数「suji2」も変化させています。

「for」命令に入る前に「suji2」を初期化して、くり返すたびに「suji2--」しています。

100まで計算

ではくり返し命令の定番プログラム

「1 + 2 + 3 + 4 + 5 〜 98 + 99 + 100」

と順番に足していく「100まで計算」プログラムを作ってみましょう!

/*プログラム28*/
#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;
}

■実行結果■

実行結果(b-10-5)

■説明■

合計を入れる為の変数goukeiの値を追っていきましょう!

くり返し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)

カッコの中身がその時の値です。

変数「goukei」の値を塗り替えていく事で、複雑そうな計算もシンプルなくり返し命令で書く事ができます!

トレース

くり返しの動きを一回一回止めながらみていくプログラムです。一回一回何かキーを押してください。

/*プログラム29*/
#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);
		_getch();
	}
	
	printf("\n");

	return 0;
}

■実行結果■

実行結果(b-10-6)

■説明■

このように動きを追う作業の事を「トレース」といいます。

最初なれないウチはこの「トレース」をきちんと行って中の変数の動きなどをしっかり追っていく事をオススメします!

頭の中で想像するだけだとちょっとツライですもんね!

今回はそんな「トレース」に便利な「_getch()」命令をご紹介します!一回一回入力待ちになるので「トレース」にぴったりです!

使い方はいつもの先頭に「#include <conio.h>」という一文を加えて、あとは止めたい場所に「_getch()」を書くだけです。

ちゃんとしたこの命令の使い方とは少し違いますが、便利なので使ってみてください!

次回

十一日目 繰り返し(while)命令

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本

□ページの先頭へ□

□HOME□