身につくC言語-10回目 繰り返し文 while文-

多くの場合繰り返す文を使用するときはfor文を使用するのですが、時と場合により「while文」を使用する場合があります。

 

while文の使い方

ソースコード

 



#include<stdio.h>
int main(void)
{
	int a=0;
	
	
	while(a<3)
	{
		printf("%d",a);
		a++;
	}
	
	return 0;
	
}

 

出力結果は、「012」となるでしょう。

 

ここで大切なのは

 


	
	while(a<3)
	{
		printf("%d",a);
		a++;
	}

 

というところです。

 

これを日本語に直すと

 

aが3より小さいならaを出力しろ。aに1をたせ。

 

という意味です。

 

()の中が真(合っている)ならば繰り返し、偽(合っていない)なら無視するという意味です。

 

もう一つの例としてこちらも入力してみましょう。

 

ソースコード

 



#include<stdio.h>

int main(void)
{
	int a=10;
	
	while(a>0)
	{
		printf("%d\n",a);
		a--;
	}
	
	return 0;
}

 

結果は、縦に10~1までが出力されます。

 

このように、a–;を使うことによって引いていくこともできます。

 

練習問題

 

問題1 0から5まで出力するプログラムを作成しなさい。(ただしwhile文を使うこと)

問題2 0から任意の数まで出力するプログラムを作成しなさい。(ただしwhile文をつかい、任意の数は入力によって決めること)

 

演習問題解答

 

問題1解答

ソースコード

 


#include<stdio.h>

int main(void)
{
	int a=0;
	
	while(a<=5)
	{
		printf("%d\n",a);
		a++;
	}
	
	return 0;
}

 

このコードでは「a<=5」を使用していますが、「a<6」でも実行できます。

 

問題2解答

 

ソースコード

 


#include<stdio.h>

int main(void)
{
	int a=0;
	int b;
	
	scanf("%d",&b);
	
	while(a<=b)
	{
		printf("%d\n",a);
		a++;
	}
	
	return 0;
}

 

これは少し難しかったかもしれません。

 

しかし、考え方としては簡単です。

 

任意の整数をbに代入し、それをwhile文に組み込んでいきます。

 

(a<=b)を日本語に直すと(bにscanfで3を入力した場合)

 

aが3以下の時に繰り返す

 

という意味です。

 

まとめ

whileはforと比べてあまり使用する機会は少ないですが、基本的な使い方として覚えておくべきものです。

 

とくにwhile()のかっこの中の使い方を忘れてしまうことが多々あります。

 

カッコの中が真(合っている)ならば繰り返す

 

ですよ?

 

くれぐれも逆にはしないようにしましょう。