多くの場合繰り返す文を使用するときは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()のかっこの中の使い方を忘れてしまうことが多々あります。
カッコの中が真(合っている)ならば繰り返す
ですよ?
くれぐれも逆にはしないようにしましょう。