身につくC言語-8回目 繰り返し文 for文-

今回は、繰り返しのプログラムをしたいときに役に立つfor文を解説したいと思います。

 

しかし、for文を使うには「配列」を覚えていなければなりません。

 

配列の解説は、こちらです。

 

配列 文字列のあつかい

 

for文の使いかた

ではさっそく、

 

整数を5回入力して、5回出力しなさい

 

という問題をやって見ましょう。

 

いままで習ったことだけで、書くと

 


#include<stdio.h>

int main(void)
{
	int a[5];
	
	scanf("%d",&a[0]);
	scanf("%d",&a[1]);
	scanf("%d",&a[2]);
	scanf("%d",&a[3]);
	scanf("%d",&a[4]);
	
	printf("%d\n",a[0]);
	printf("%d\n",a[1]);
	printf("%d\n",a[2]);
	printf("%d\n",a[3]);
	printf("%d\n",a[4]);
	
	return 0;
}

 

このようなソースコードになると思います。(配列を使用しています。)

 

しかし、for文を使うと簡単に、わかりやすくすることができます。

 

ソースコード


#include<stdio.h>

int main(void)
{
	int a[5];
	int i;
	
	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	
	for(i=0;i<5;i++)
	{
		printf("%d\n",a[i]);
	}
	
	return 0;
}

ただ書き方が違うだけで、上と下のソースコードの意味は全く同じです。

 

ここら辺になると、「プログラム」っぽくなってきたと感じませんか?

 

for文解説

まず大切なところは、

 


int i;

 

 


	for(i=0;i<5;i++)
	{
		scanf("%d",&a[i]);
	}
	

 

というところです。

 

日本語に直すと、

 

 

「i」という名前の整数を格納する箱を作成する。

「i」に0を代入する。「i」が5未満の間繰り返す。「i」に1を加算する。

 

 

という意味です。

 

ということは、iが5以上になると繰り返しをやめるということです。

 

a[i]という書き方は、for文を使うときは、よく使う書き方です。

 

このプログラムだと、iの値は、0~4まで変動しますよね。

 

ということは、a[i]も繰り返されるごとに変数の名前が変わるということです。

 

 

仮に

 


a[0]=10
a[1]=20
a[2]=30
a[3]=40
a[4]=50

 

だとしましょう。

 

すると、繰り返しの1回目は、iは0ですので、

 

a[0]

 

すなわち、「10」が扱われます。

 

2回目では20、3回目では、30…というふうになります。

 

これは、実際にやってなれた方がいいでしょう。

 

for文の書き方例

ここでは、for文の例と、日本語訳をいくつか紹介したいと思います。

 

(i=0;i<3;i++) iに0を代入。iが3未満の間繰り返す。iに1ずつ加算する。 3回繰り返す
(i=1;i<3;i++) iに1を代入。iが3未満の間繰り返す。iに1ずつ加算する。 2回繰り返す
(i=0;i<=3;i++) iに0を代入。iが3以下の間繰り返す。iに1ずつ加算する。 4回繰り返す

 

以上、未満などの比較演算をまちがわないようにしましょう。

 

練習問題

問題1 整数を3回入力して、出力しなさい。ただしfor文を使用すること

練習問題解答

問題1


#include<stdio.h>

int main(void)
{
	int a[3];
	int i;
	
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	
	for(i=0;i<3;i++)
	{
		printf("%d\n",a[i]);
	}
	
	return 0;
}

まとめ

配列とfor文はかなり密接な関係にあります。

 

今回は、基本的なfor文の使い方だけですが、四則演算などを加えることによってより複雑な事ができるようになります。

 

それについては、次でご紹介したいと思います。