身につく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()のかっこの中の使い方を忘れてしまうことが多々あります。

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

ですよ?

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

スポンサーリンク